Sacar varios valores de la ayuda

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • virus
    Member
    • ago
    • 47

    #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.
  • eejmonterov
    Junior Member
    • jun
    • 16

    #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.

    Comentario

    Trabajando...