Crear Matchcode (Search Help) con una tabla interna.

En un momento dado me pidieron hacer un reporte donde el matchode del campo lgort, traía todos los lgort (almacenes) de todos los centros y el requerimiento era solamente los de un determinado centro.

Descubrí que se puede realizar un matchode dinamicamente con una tabla interna nuestra directamente desde el código.

Código:

At selection-screen on value-request for s_lgort-low.
Select LGORT LGOBE
from T001L
into table it_lgort
where werks = ‘2000’.

CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
EXPORTING
RETFIELD = ‘LGORT’
WINDOW_TITLE = ‘Depósitos’
VALUE_ORG = ‘S’
TABLES
VALUE_TAB = it_lgort
RETURN_TAB = it_ret
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.

IF SY-SUBRC = 0.
read table it_ret index 1.
move it_ret-fieldval to S_lgort-low.
ENDIF.

Esto muestra el almacén, la descripción del mismo, y al elejir uno nos lleva al select option la opción elejida.

Advertisements
Posted in Report. 1 Comment »

One Response to “Crear Matchcode (Search Help) con una tabla interna.”

  1. Rosa Bolívar Says:

    Hola, yo estoy haciendo lo mismo pero al ejecutarlo me dice que el tipo de tabla que va a retornar esta correcto, pero que su longitud no. Te adjunto el código.
    DATA: BEGIN OF ti_busq OCCURS 0, “Esta tabla nos devuelve la ayuda
    material LIKE ZMATE_BAJA_ROT-cod_mat,
    cuota LIKE ZMATE_BAJA_ROT-cuota,
    MONTO LIKE ZMATE_BAJA_ROT-monto,
    FECHA_ini LIKE ZMATE_BAJA_ROT-fecha_ini,
    FECHA_FIN LIKE ZMATE_BAJA_ROT-fecha_fin,
    GRUPO LIKE ZMATE_BAJA_ROT-grupo,
    END OF ti_busq.

    DATA: BEGIN OF ti_resul OCCURS 0, “Esta tabla es donde almacenamos los resultados
    material LIKE makt-matnr,
    END OF ti_resul.

    PARAMETERS: T_GRU TYPE MATNR.

    AT SELECTION-SCREEN ON VALUE-REQUEST FOR T_GRU.
    SELECT COD_MAT
    INTO TABLE ti_resul
    FROM Zmate_baja_rot
    WHERE GRUPO EQ ‘X’.

    * llamamos a la funcion que nos inserta la ayuda de busqueda, en esta le marcamos el campo
    * que exporta y le pasamos la tabla de resultados que queremos que nos muestre y una tabla de retorno
    CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
    EXPORTING
    retfield = ‘COD_MAT’
    “window_title = ‘Ayuda de busqueda’
    “value = ‘*’
    “value_org = ‘S’
    TABLES
    value_tab = ti_resul
    return_tab = ti_busq
    EXCEPTIONS
    parameter_error = 1
    no_values_found = 2
    OTHERS = 3.

    IF sy-subrc EQ 0.
    READ TABLE ti_busq INDEX 1.
    MOVE ti_busq-material TO T_GRU.
    ENDIF.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: