#1
|
|||
|
|||
Ejemplo de ALV list con cabecera
Hola necesito hacer un ALV list que tiene varias cabeceras + info. ej.
cab 1 tendria datos de region 1 det 1 documentos y nombres de clientes de esa region cab2 reg 2 det 2 datos de doc y region 2 y asi por varias regiones... se puede hacer con el REUSE_ALV_LIST_DISPLAY o hay que usar alguno otra función para ALV. Alguien tendria algún ejemplo de como podria hacerlo? desde ya muchas gracias. |
#2
|
||||
|
||||
Hola, lo que quieres hacer es un ALV jerárquico y para ello usa la siguiente función: REUSE_ALV_HIERSEQ_LIST_DISPLAY. Te mando un ejemplito para que te guies... es muy sencillo, lo único nuevo es el INIT_SORT y el INIT_KEY en donde indicas cuales son la claves de tu cabecera y el detalle para que se puedan relacionar
REPORT Z_PRT_ERC_LOGLIQ. TABLES: ZTERC_LOGLIQ, T001. TYPE-POOLS: SLIS. * PARAMETROS DE SELECCION SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS: S_BUKRS FOR ZTERC_LOGLIQ-BUKRS OBLIGATORY. PARAMETERS: P_GJAHR LIKE ZTERC_LOGLIQ-GJAHR OBLIGATORY. SELECT-OPTIONS: S_LBELN FOR ZTERC_LOGLIQ-NROLIQ, S_MABER FOR ZTERC_LOGLIQ-AREAG, S_ERSDA FOR ZTERC_LOGLIQ-ERSDA, S_STATS FOR ZTERC_LOGLIQ-STATS. SELECTION-SCREEN END OF BLOCK B1. * ESTRUCTURA DEL ALV DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE, GT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE, GS_LAYOUT TYPE SLIS_LAYOUT_ALV, GS_KEY TYPE SLIS_KEYINFO_ALV, G_REPID LIKE SY-REPID, GT_EVENTS TYPE SLIS_T_EVENT. * TABLA INTERNA PARA EL CATALOGO DE DATOS DATA: BEGIN OF T_ZTERC_LOGLIQ OCCURS 0. INCLUDE STRUCTURE ZTERC_LOGLIQ. DATA: END OF T_ZTERC_LOGLIQ. DATA: BEGIN OF T_HEADER OCCURS 0, IND, BUKRS LIKE ZTERC_LOGLIQ-BUKRS, AREAG LIKE ZTERC_LOGLIQ-AREAG, END OF T_HEADER. * INICIO START-OF-SELECTION. G_REPID = SY-REPID. PERFORM GET_DATA. PERFORM INIT_FIELDCAT. PERFORM INIT_SORT. PERFORM INIT_LAYOUT. PERFORM INIT_KEY. PERFORM INIT_EVENT. PERFORM REPORTE. *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* FORM GET_DATA . SELECT * INTO CORRESPONDING FIELDS OF TABLE T_ZTERC_LOGLIQ FROM ZTERC_LOGLIQ WHERE BUKRS IN S_BUKRS AND GJAHR = P_GJAHR AND NROLIQ IN S_LBELN AND AREAG IN S_MABER AND ERSDA IN S_ERSDA AND STATS IN S_STATS. LOOP AT T_ZTERC_LOGLIQ. MOVE-CORRESPONDING T_ZTERC_LOGLIQ TO T_HEADER. COLLECT T_HEADER. ENDLOOP. ENDFORM. " GET_DATA *&---------------------------------------------------------------------* *& Form INIT_FIELDCAT *&---------------------------------------------------------------------* FORM INIT_FIELDCAT . CLEAR GT_FIELDCAT. REFRESH GT_FIELDCAT. * CABECERA* GT_FIELDCAT-FIELDNAME = 'BUKRS'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_HEADER'. GT_FIELDCAT-SELTEXT_L = 'Sociedad'. GT_FIELDCAT-OUTPUTLEN = '9'. APPEND GT_FIELDCAT. GT_FIELDCAT-FIELDNAME = 'AREAG'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_HEADER'. GT_FIELDCAT-SELTEXT_L = 'Area Gestora'. GT_FIELDCAT-OUTPUTLEN = '13'. APPEND GT_FIELDCAT. * DETALLE* GT_FIELDCAT-FIELDNAME = 'NROLIQ'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_FIELDCAT-SELTEXT_L = 'Liquidación'. GT_FIELDCAT-OUTPUTLEN = '12'. APPEND GT_FIELDCAT. GT_FIELDCAT-FIELDNAME = 'GJAHR'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_FIELDCAT-SELTEXT_L = 'Ejercicio'. GT_FIELDCAT-OUTPUTLEN = '10'. APPEND GT_FIELDCAT. GT_FIELDCAT-FIELDNAME = 'ERSDA'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_FIELDCAT-SELTEXT_L = 'Fec. Registro'. GT_FIELDCAT-OUTPUTLEN = '14'. APPEND GT_FIELDCAT. GT_FIELDCAT-FIELDNAME = 'UDFTIME'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_FIELDCAT-SELTEXT_L = 'Hra. Registro'. GT_FIELDCAT-OUTPUTLEN = '14'. APPEND GT_FIELDCAT. GT_FIELDCAT-FIELDNAME = 'ERNAM'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_FIELDCAT-SELTEXT_L = 'Usuario obs.'. GT_FIELDCAT-OUTPUTLEN = '20'. APPEND GT_FIELDCAT. GT_FIELDCAT-FIELDNAME = 'STATS'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_FIELDCAT-SELTEXT_L = 'Estado'. GT_FIELDCAT-OUTPUTLEN = '7'. APPEND GT_FIELDCAT. GT_FIELDCAT-FIELDNAME = 'OBSER'. GT_FIELDCAT-REF_TABNAME = 'ZTERC_LOGLIQ'. GT_FIELDCAT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_FIELDCAT-SELTEXT_L = 'Observación'. GT_FIELDCAT-OUTPUTLEN = '255'. APPEND GT_FIELDCAT. ENDFORM. " INIT_FIELDCAT *&---------------------------------------------------------------------* *& Form INIT_SORT *&---------------------------------------------------------------------* FORM INIT_SORT . CLEAR GT_SORT. GT_SORT-TABNAME = 'T_HEADER'. GT_SORT-FIELDNAME = 'BUKRS'. GT_SORT-UP = 'X'. GT_SORT-SPOS = 1. APPEND GT_SORT. CLEAR GT_SORT. GT_SORT-TABNAME = 'T_HEADER'. GT_SORT-FIELDNAME = 'AREAG'. GT_SORT-UP = 'X'. GT_SORT-SPOS = 2. APPEND GT_SORT. CLEAR GT_SORT. GT_SORT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_SORT-FIELDNAME = 'BUKRS'. GT_SORT-UP = 'X'. GT_SORT-SPOS = 1. APPEND GT_SORT. CLEAR GT_SORT. GT_SORT-TABNAME = 'T_ZTERC_LOGLIQ'. GT_SORT-FIELDNAME = 'AREAG'. GT_SORT-UP = 'X'. GT_SORT-SPOS = 2. APPEND GT_SORT. ENDFORM. " INIT_SORT *&---------------------------------------------------------------------* *& Form INIT_LAYOUT *&---------------------------------------------------------------------* FORM INIT_LAYOUT . GS_LAYOUT-ZEBRA = 'X'. GS_LAYOUT-EXPAND_FIELDNAME = 'IND'. GS_LAYOUT-EXPAND_ALL = 'X'. ENDFORM. " INIT_LAYOUT *&---------------------------------------------------------------------* *& Form INIT_KEY *&---------------------------------------------------------------------* FORM INIT_KEY . GS_KEY-HEADER01 = 'BUKRS'. GS_KEY-ITEM01 = 'BUKRS'. GS_KEY-HEADER02 = 'AREAG'. GS_KEY-ITEM02 = 'AREAG'. ENDFORM. " INIT_KEY *&---------------------------------------------------------------------* *& Form INIT_EVENT *&---------------------------------------------------------------------* FORM INIT_EVENT . DATA: C_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_PAGE', EVENT TYPE SLIS_ALV_EVENT. EVENT-NAME = SLIS_EV_TOP_OF_PAGE. EVENT-FORM = 'TOP_PAGE'. APPEND EVENT TO GT_EVENTS. ENDFORM. " INIT_EVENT *&---------------------------------------------------------------------* *& Form REPORTE *&---------------------------------------------------------------------* FORM REPORTE . * CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' * CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = G_REPID IS_LAYOUT = GS_LAYOUT IT_FIELDCAT = GT_FIELDCAT[] IT_SORT = GT_SORT[] I_TABNAME_HEADER = 'T_HEADER' I_TABNAME_ITEM = 'T_ZTERC_LOGLIQ' IS_KEYINFO = GS_KEY IT_EVENTS = GT_EVENTS TABLES T_OUTTAB_HEADER = T_HEADER T_OUTTAB_ITEM = T_ZTERC_LOGLIQ EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. ENDFORM. " REPORTE *---------------------------------------------------------------------* * FORM TOP_PAGE * *---------------------------------------------------------------------* FORM TOP_PAGE. WRITE:/ TEXT-006, SY-REPID. "Reporte WRITE:/ TEXT-007. "Descripción WRITE:/115(8) TEXT-003, 124(10) SY-DATUM. "Fecha WRITE:/115(8) TEXT-004, 124(8) SY-UZEIT. "Hora WRITE:/115(8) TEXT-005, 124(1) SY-PAGNO. "Pagina WRITE:/1(150) TEXT-002 CENTERED. "HISTORIAL DE LIQUIDACIONES SKIP 1. ENDFORM. Suerte!!
__________________
Saludos, Claudia V. |
#3
|
|||
|
|||
Me sirve de mucha ayuda Claudia Valdespino ahorita estoy buscando ejemplos sobre ALV jerarquicos, para tener una base o hacer uno estandar para nada mas modificarle ciertas cosas. Gracias.
|
#4
|
||||
|
||||
Hola, aqui tienes mas ejemplos de ALV Jerarquico
BCALV_TEST_HIERSEQ_LIST BCALV_TEST_HIERSEQ_LIST_EVENTS Espero te sirva ....
__________________
David Carballido Córdova |
#5
|
||||
|
||||
Aqui encontre un reporte muy bueno en el que la salida es como tu estas buscando, mas de 1 cabecera .... el reporte es relacionado a activos fijos, seria cuestion de darle una debuggeada al report: RAABGA_ALV01, espero te ayude ....
__________________
David Carballido Córdova |
#6
|
|||
|
|||
gracias DavidXD_XD me sirven de mucha ayuda. los checare y vere que tal. de nuevo gracias.
|
#7
|
|||
|
|||
Te recomiendo que eches un ojo a esta entrada:
Es un include con el que podreis hacer rapidamente ALV GRID, ALV LIST y ALV Jerarquico de un modo muy sencillo. Un saludo. Nacho |
Herramientas | Buscar en Tema |
Desplegado | |
|
|