MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Corte de Control en ALV Jerárquico (foro/showthread.php?t=11570)

gustavo_mareco 05/03/08 18:03:39

Corte de Control en ALV Jerárquico
 
Buenas gente, alguien habrá hecho o escuchado acerca de un corte de control(por ejemplo por Sociedad), en un ALV Jerárquico?

Muchas gracias!!!

sconoredhot 05/03/08 18:22:42

Ejemplo ALV jerárquico.


REPORT zalv_jerarquico.

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
TYPES: BEGIN OF st_header.
INCLUDE STRUCTURE ekko.
TYPES: END OF st_header.
TYPES: BEGIN OF st_item.
INCLUDE STRUCTURE ekpo.
TYPES: END 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

Cortes de control:

Ahora solamente debes agregar los cortes de control al ALV.
AT FIRST Realiza las instrucciones para las primeras entradas de la tabla. ENDAT.
AT NEW Realiza las instrucciones para cada inicio de nivel de ruptura.
AT LAST Realiza las instrucciones para la ultima entrada de una tabla.
AT END OF Realiza las instrucciones para cada final de nivel de ruptura.


Husos Horarios son GMT. La hora en este momento es 13:27:04.

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