Hi.
I think you want to use F4 function. So you can filter the diferent records you want to show for each field.
For each field, you create a at selection-screen on value-request for p_fieldN (create one at selection...to each field)
right ?
e.g.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.
F4 help for fields that are only known at runtime CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' EXPORTING tabname = 'MAKT' fieldname = 'MATNR' value ='*' TABLES return_tab = it_return_tab EXCEPTIONS field_not_found = 1 no_help_for_field = 2 inconsistent_help = 3 no_values_found = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. *Return the selected value READ TABLE it_return_tab INDEX 1. IF sy-subrc EQ 0. *Conversion exit ALPHA, external->internal REPLACE ALL OCCURRENCES OF '.' IN it_return_tab-fieldval WITH space IN CHARACTER MODE. CONDENSE it_return_tab-fieldval NO-GAPS. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = it_return_tab-fieldval IMPORTING output = p_matnr. ENDIF.
best regards.
Glauco