|
#1
|
|||
|
|||
Sacar varios valores de la ayuda
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 | |
|
|