Hi.
I think you want to use F4 function. So you can filter the diferent records you want to show for each field.
right ?
e.g. 1 - To online PROGRAM:
In the screen codding after user_command module, write :
Module User_command_0100.
PROCESS ON VALUE-REQUEST.
FIELD table-fieldNMODULE f4_list_values. " CREATE ONE PER EACH FIELD YOU NEED..AND ITS SCREEN-NAME HERE ...
MODULE f4_list_valuesINPUT.
* SELECT RECORDS you need.
select * from mara where .....
* fill list of values to show
LOOP AT it_table.
CLEAR it_value_tab.
it_value_tab-line = it_table-field.
APPEND it_value_tab.
ENDLOOP.
* fill columns to show
CLEAR it_field_tab.
it_field_tab-tabname = 'TABLE.
it_field_tab-fieldname = 'FIELD'.
it_field_tab-langu = 'E'.
it_field_tab-position = '1'.
APPEND it_field_tab.
* F4 help also returning the value to be displayed in internal table
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'FIELD_NAME_HERE'
dynpprog = 'SAPMz_PROG_NAME_HERE'
* window_title =
TABLES
value_tab = it_value_tab
field_tab = it_field_tab
return_tab = it_return_tab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
* Return the selected value
READ TABLE it_return_tab INDEX 1.
IF sy-subrc = 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 = mara-matnr.
ENDIF.
ENDIF.
ENDIF.
ENDMODULE. "f4_list_values INPUT
e.g. 2 - To report program/executable:
For each field, you create a at selection-screen on value-request for p_fieldN (create one at selection...to each field)
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