MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Sacar varios valores de la ayuda (foro/showthread.php?t=65808)

virus 10/01/13 17:41:12

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.

eejmonterov 10/01/13 21:50:41

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.


Husos Horarios son GMT. La hora en este momento es 06:19:25.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web