Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

ALV_JERARQUICO PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Ejemplos ALV
Martes, 22 de Julio de 2003 17:44
Ejemplo de un listado ALV jerarquico
REPORT zalv_jerarquico.
* Por: Jorge Serra (Neo) mailto: Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
* Se trata de una ejemplo de listado ALV jerarquico.
* Propósito:
* ---------
* Voy mostrar un listado de pedidos de compras (datos de cabecera)
* y sus posiciones (datos de posicion)
* Pasos esenciales (Buscar el simbolo '§')
* ----------------
* 1. Definición estructuras y tablas necesarias
* 2. Definimos las tablas con los datos de salida
* 3. Toma de datos
* 4. Definición 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.
* Catálogo de campos: contiene la descripción de los campos de salida
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
* Especificaciones de la disposición de la lista: descripción de la
* estructura de salida
      gs_layout TYPE slis_layout_alv,
* Relacion entre los datos de cabecera y posicion
      gs_key TYPE slis_keyinfo_alv,
* Nombre del programa
      g_repid LIKE sy-repid.

*<-- § Paso 2. Definimos las tablas con los datos de salida
TYPESBEGIN OF st_header.
        INCLUDE STRUCTURE ekko.
TYPESEND OF st_header.
TYPESBEGIN OF st_item.
        INCLUDE STRUCTURE ekpo.
TYPESEND OF st_item.
DATA: gt_header TYPE STANDARD TABLE OF st_header WITH HEADER LINE,
      gt_item TYPE STANDARD TABLE OF st_item 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.
  PERFORM init_key.
*<-- § 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-tabname = 'GT_HEADER'.
  gt_fieldcat-ref_tabname = 'EKKO'.
  APPEND gt_fieldcat. CLEAR gt_fieldcat.
  gt_fieldcat-fieldname = 'EBELN'.
 gt_fieldcat-tabname = 'GT_ITEM'.
 gt_fieldcat-ref_tabname = 'EKPO'.
  gt_fieldcat-no_out = 'X'.
  APPEND gt_fieldcat. CLEAR gt_fieldcat.
  gt_fieldcat-fieldname = 'EBELP'.
  gt_fieldcat-tabname = 'GT_ITEM'.
  gt_fieldcat-ref_tabname = 'EKPO'.
  APPEND gt_fieldcat. CLEAR gt_fieldcat.
 gt_fieldcat-fieldname = 'MATNR'.
  gt_fieldcat-tabname = 'GT_ITEM'.
  gt_fieldcat-ref_tabname = 'EKPO'.
  APPEND gt_fieldcat. CLEAR gt_fieldcat.
  gt_fieldcat-fieldname = 'WERKS'.
  gt_fieldcat-tabname = 'GT_ITEM'.
  gt_fieldcat-ref_tabname = 'EKPO'.
  APPEND gt_fieldcat. CLEAR gt_fieldcat.
 gt_fieldcat-fieldname = 'MENGE'.
  gt_fieldcat-tabname = 'GT_ITEM'.
  gt_fieldcat-ref_tabname = 'EKPO'.
  APPEND gt_fieldcat. CLEAR gt_fieldcat.
 gt_fieldcat-fieldname = 'MEINS'.
 gt_fieldcat-tabname = 'GT_ITEM'.
  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 ekko
           UP TO 100 ROWS
           INTO TABLE gt_header.

  SELECT * FROM ekpo
           INTO TABLE gt_item
           FOR ALL ENTRIES IN gt_header
           WHERE ebeln = gt_header-ebeln.
ENDFORM.                    " TOMA_DATOS
*---------------------------------------------------------------------*
* FORM LISTADO *
*---------------------------------------------------------------------*
FORM listado.
  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
* I_INTERFACE_CHECK = ' '
      i_callback_program             = g_repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
    is_layout                      = gs_layout
    it_fieldcat                    = gt_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
      i_tabname_header               = 'GT_HEADER'
      i_tabname_item                 = 'GT_ITEM'
* I_STRUCTURE_NAME_HEADER =
* I_STRUCTURE_NAME_ITEM =
      is_keyinfo                     = gs_key
* IS_PRINT =
* IS_REPREP_ID =
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
    TABLES
      t_outtab_header                = gt_header[]
      t_outtab_item                  = gt_item[]
* 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
*---------------------------------------------------------------------*
* FORM INIT_KEY *
*---------------------------------------------------------------------*
FORM init_key.
* Relacion entre los campos de cabecera y los de posicion
  gs_key-header01 = 'EBELN'.
  gs_key-item01 = 'EBELN'.

ENDFORM.                    " INIT_KEY

Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search