#2
|
|||
|
|||
Tienes que hacer unas modificaciones desde el llamado de la función hasta la creación de una rutina que sera llamada desde la función.
1) Función CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'CAMPO' window_title = 'AYUDA BUSQUEDA' value_org = 'S' callback_program = sy-repid callback_form = 'CALLBACK_F4' " Esta rutina es la que modificara los campos que retorna tu return tab TABLES value_tab = lt_match return_tab = lt_value EXCEPTIONS parameter_error = 1 no_values_found = 2 OTHERS = 3. 2) Rutina FORM callback_f4 TABLES record_tab STRUCTURE seahlpres CHANGING shlp TYPE shlp_descr callcontrol LIKE ddshf4ctrl. * define local data DATA: ls_intf LIKE LINE OF shlp-interface, ls_prop LIKE LINE OF shlp-fieldprop. " Hide unwanted fields CLEAR: ls_prop-shlpselpos, ls_prop-shlplispos. " Overwrite selectable fields on search help REFRESH: shlp-interface. ls_intf-shlpfield = 'F0001'. ls_intf-valfield = 'CAMPO1'. ls_intf-f4field = 'X'. APPEND ls_intf TO shlp-interface. ls_intf-shlpfield = 'F0002'. ls_intf-valfield = 'CAMPO2'. ls_intf-f4field = 'X'. APPEND ls_intf TO shlp-interface. ls_intf-shlpfield = 'F0003'. ls_intf-valfield = 'CAMPO3'. ls_intf-f4field = 'X'. APPEND ls_intf TO shlp-interface. ENDFORM. 3) Luego simplemente haces lecturas a la tabla de retorno READ TABLE lt_value WITH KEY retfield = 'CAMPO1'. IF sy-subrc = 0. e_CAMPO = lt_value-fieldval. ENDIF. READ TABLE lt_value WITH KEY retfield = 'CAMPO2'. IF sy-subrc = 0. e_CAMPO1 = lt_value-fieldval. ENDIF. READ TABLE lt_value WITH KEY retfield = 'CAMPO3'. IF sy-subrc = 0. e_CAMPO2 = lt_value-fieldval. ENDIF. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|