Está en la página 1de 3

* * * * * * * * * * * * * *

Por: Jorge Serra (Neo) jorge-sr@terra.es Se trata de un pequeo ejemplo de listado ALV para aquellos que nunca han creado uno. Por supuesto, a los que ya sepais algo de ALV, no creo que os sirva de mucho Propsito: --------Voy mostrar un listado de posiciones de pedidos de compras Pasos esenciales (Buscar el simbolo '') ---------------1. Definicin estructuras y tablas necesarias 2. Definimos la tabla con los datos de salida 3. Toma de datos 4. Definicin estructura y formato de salida 5. Mostrar listado

*<-- Paso 1. Definicion estructuras y tablas necesarias * Type Pool donde vienen definidas todas las estructuras y tablas TYPE-POOLS: slis. * Catlogo de campos: contiene la descripcin de los campos de salida DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, * Especificaciones de la disposicin de la lista: descripcin de la * estructura de salida gs_layout TYPE slis_layout_alv, * Nombre del programa g_repid LIKE sy-repid. *<-- Paso 2. Definimos la tabla con los datos de salida TYPES: BEGIN OF st_output. INCLUDE STRUCTURE ekpo. TYPES: END OF st_output. DATA: gt_output TYPE STANDARD TABLE OF st_output WITH HEADER LINE. INITIALIZATION. g_repid = sy-repid. START-OF-SELECTION. *<-- Paso 3. Toma de datos PERFORM toma_datos. *<-- Paso 4. Estructura y formato de salida PERFORM init_fieldcat. PERFORM init_layout. *<-- Paso 5. Mostrar listado PERFORM listado. *&&-----------------------------------------------------------------&&* * SUBRUTINAS DEL PROGRAMA * *&&-----------------------------------------------------------------&&* *---------------------------------------------------------------------* * FORM INIT_FIELDCAT * *---------------------------------------------------------------------* FORM init_fieldcat. * Mediante esta tabla vamos a definir los campos que queremos mostrar * en el listado de salida. gt_fieldcat-fieldname = 'EBELN'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'EBELP'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'MATNR'.

gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'WERKS'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'MENGE'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'MEINS'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. ENDFORM. *---------------------------------------------------------------------* * FORM INIT_LAYOUT * *---------------------------------------------------------------------* FORM init_layout. * Mediante esta estructura podemos definir el formato de salida gs_layout-zebra = 'X'. gs_layout-f2code = '&amp;ETA'. gs_layout-detail_popup = 'X'. ENDFORM. *---------------------------------------------------------------------* * FORM TOMA_DATOS * *---------------------------------------------------------------------* FORM toma_datos. * Los datos deben guardarse en la tabla interna de salida SELECT * FROM ekpo UP TO 100 ROWS INTO TABLE gt_output. ENDFORM. " TOMA_DATOS *---------------------------------------------------------------------* * FORM LISTADO * *---------------------------------------------------------------------* FORM listado. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = ' ' i_callback_program = g_repid * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_STRUCTURE_NAME = is_layout = gs_layout it_fieldcat = gt_fieldcat[] * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' * I_SAVE = ' ' * IS_VARIANT = * IT_EVENTS = * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0

* * * * *

I_SCREEN_END_COLUMN = 0 I_SCREEN_END_LINE = 0 IMPORTING E_EXIT_CAUSED_BY_CALLER = ES_EXIT_CAUSED_BY_USER = TABLES t_outtab = gt_output EXCEPTIONS program_error = 1 OTHERS = 2 . IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " LISTADO

También podría gustarte