Ver Mensaje Individual
  #2  
Viejo 10/01/13, 21:50:41
eejmonterov eejmonterov is offline
Junior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 16
Smile

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.
Responder Con Cita