#1
|
|||
|
|||
![]() Buenas,
No sé si alguien me podrá ayudar, tengo una ayuda que ahora mismo me retorna un valor, no sé como hacer para que me saque mas valores. A ver si me explico por ejemplo ... CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'CAMPO' dynpprog = sy-cprog dynpnr = sy-dynnr dynprofield = 'D_CAMPO' window_title = ' ' display = ' ' TABLES value_tab = lt_values field_tab = lt_field_tab return_tab = lt_rettab EXCEPTIONS parameter_error = 1 no_values_found = 2 OTHERS = 3. CASE sy-subrc. WHEN 0. READ TABLE lt_rettab INDEX 1. e_CAMPO = lt_rettab-fieldval. e_CAMPO1 = lt_rettab-fieldval. e_CAMPO2 = lt_rettab-fieldval. ENDCASE. Tenía puesto para que me sacara solo el valor del campo CAMPO y va bien, pero si quiero sacar otros campos, no sé como hacerlo. ¿Que debo hacer? Saludos y gracias por adelantado. |
#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 | |
|
|