Hi @ Praveer,
Below is my code:
PROCESS ON VALUE-REQUEST.
FIELD ZAR_USERINFO-USERID MODULE LIST_HELP.
MODULE list_help INPUT.
DATA: i_itab TYPE STANDARD TABLE OF zar_user,
return_tab TYPE STANDARD TABLE OF ddshretval,
ls_return LIKE LINE OF return_tab.
SELECT * FROM zar_user INTO TABLE i_itab.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'USERID'
* PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'ZAR_USERINFO-USERID'
* STEPL = 0
* WINDOW_TITLE =
* VALUE = i_itab
value_org = 'S'
multiple_choice = 'X'
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB = i_itab
* IMPORTING
* USER_RESET =
TABLES
value_tab = i_itab
* FIELD_TAB =
return_tab = return_tab
* DYNPFLD_MAPPING =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* NO_VALUES_FOUND = 2
* OTHERS = 3
.
IF sy-subrc EQ 0.
GET CURSOR FIELD f LINE l OFFSET o.
LOOP AT return_tab INTO ls_return.
extract+3(5) = ls_return-fieldval.
MODIFY extract INDEX l.
l = l + 1.
ENDLOOP.
ENDIF.
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
FUNCTIONCODE = '/00'
EXCEPTIONS
FUNCTION_NOT_SUPPORTED = 1
OTHERS = 2.
ENDMODULE. " LIST_HELP INPUT
After i debugging, i found this snapshot in FORM 'update_tab.',
Those IF conditions always make a result 'neuer' as 'N' for extract value from F4,
make 'neuer' as 'J' for extract value from manually input. Then 'J' will save in DB.
i really do not know <table2_x> and <vim_xextract_enti> where comes from, when assigned value to it?
IF status-type EQ einstufig AND status-action EQ hinzufuegen.
IF ( ( x_header-bastab EQ space OR x_header-texttbexst EQ space )
AND <table2_x> EQ <initial_x>
OR x_header-bastab NE space AND x_header-texttbexst NE space
AND <vim_xextract_enti> EQ <initial_x>
OR ( vim_special_mode EQ vim_upgrade OR
vim_single_entry_function NE space ) )
AND <xact> EQ leer. "int943578/2000
neuer = 'J'.
ELSE.
neuer = 'N'.
ENDIF.
ENDIF.