Skip to Content
0
Dec 13, 2013 at 09:24 PM

How to get value of parameter field

153 Views

I need to create a simple selection screen whit a parameter field and a select option. I created them successfully in the WDDOINIT method and I also added a button. When the user presses the button, an ALV is instantiated showing the results of the query.

This is what I have written in the action of the submit button:

DATA: lo_interfacecontroller TYPE REF TO iwci_wdr_select_options,

lo_r_helper_class TYPE REF TO if_wd_select_options,

lo_cmp_usage TYPE REF TO if_wd_component_usage,

lv_matnr TYPE REF TO data,

lt_ersda TYPE REF TO data,

lt_mara TYPE wd_this->elements_mara,

FIELD-SYMBOLS: <fs_mat> TYPE char18,

<fs_ers> TYPE table.


* Instantiate used component

lo_cmp_usage = wd_this->wd_cpuse_sel_opt( ).

IF lo_cmp_usage->has_active_component( ) IS INITIAL.

lo_cmp_usage->create_component( ).

ENDIF.

* Call method in used controller

lo_interfacecontroller = wd_this->wd_cpifc_sel_opt( ).

lo_r_helper_class = lo_interfacecontroller->init_selection_screen( ).

* Get parameter field

CALL METHOD lo_r_helper_class->get_parameter_field

EXPORTING

i_id = 'MATNR'

IMPORTING

e_value = lv_matnr.

ASSIGN lv_matnr->* TO <fs_mat>.

* Get select option table

CALL METHOD lo_r_helper_class->get_range_table_of_sel_field

EXPORTING

i_id = 'ERSDA'

RECEIVING

rt_range_table = lt_ersda.

ASSIGN lt_ersda->* TO <fs_ers>.

SELECT *

FROM mara

INTO CORRESPONDING FIELDS OF TABLE lt_mara

WHERE matnr EQ <fs_mat>

AND ersda IN <fs_ers>.

Then it goes on with the ALV. The part with the select option works fine. The field symbol <fs_ers> is correctly assigned and that part of the select works. But the field symbol of the parameter is not and I get the following message when I click on the button: "Field symbol has not yet been assigned."

I have also tried writing CREATE DATA lv_prjname TYPE zsci_prjname. before and after the method call and then I get no dump, but the field symbol <fs_mat> is always empty and therefore the SELECT brings no result.