#5
|
|||
|
|||
buenas calanis, primero gracias por responder,
te cuento uso el mismo catalogo por cada append que hago, te copio el codigo que tengo haber si ves algo raro. ******************************************************* PERFORM BUILD. "creo el catalogo if modo = 'X'. PERFORM GENERAR_ALV_LIST. "genero los alv list y llamo al bloque else. PERFORM CALL_ALV. "genero el alv list que si me salen los subtotales endif. FORM BUILD . DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV. CLEAR FIELDCAT_IN. FIELDCAT_LN-FIELDNAME = 'BELNR'. FIELDCAT_LN-TABNAME = 'i_interna'. *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT *FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY FIELDCAT_LN-NO_OUT = ' '. FIELDCAT_LN-SELTEXT_L = 'Num. Factura'. APPEND FIELDCAT_LN TO GT_FIELDCAT. CLEAR FIELDCAT_IN. FIELDCAT_LN-FIELDNAME = 'EBELN'. FIELDCAT_LN-TABNAME = 'i_interna'. *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT *FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY FIELDCAT_LN-NO_OUT = ' '. FIELDCAT_LN-SELTEXT_L = 'Doc.Compras'. APPEND FIELDCAT_LN TO GT_FIELDCAT. CLEAR FIELDCAT_IN. FIELDCAT_LN-FIELDNAME = 'MATNR'. FIELDCAT_LN-TABNAME = 'i_interna'. *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT *FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY FIELDCAT_LN-NO_OUT = ' '. FIELDCAT_LN-SELTEXT_L = 'Articulo'. APPEND FIELDCAT_LN TO GT_FIELDCAT. CLEAR FIELDCAT_IN. FIELDCAT_LN-FIELDNAME = 'DMBTR'. FIELDCAT_LN-TABNAME = 'i_interna'. *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT *FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY FIELDCAT_LN-NO_OUT = ' '. FIELDCAT_LN-SELTEXT_L = 'Imp.MonedaLocal'. APPEND FIELDCAT_LN TO GT_FIELDCAT. CLEAR FIELDCAT_IN. FIELDCAT_LN-FIELDNAME = 'BNBTR'. FIELDCAT_LN-TABNAME = 'i_interna'. *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT *FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY FIELDCAT_LN-NO_OUT = ' '. FIELDCAT_LN-SELTEXT_L = 'Coste ind.'. APPEND FIELDCAT_LN TO GT_FIELDCAT. CLEAR FIELDCAT_IN. FIELDCAT_LN-FIELDNAME = 'NETWR'. FIELDCAT_LN-TABNAME = 'i_interna'. *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT *FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY FIELDCAT_LN-NO_OUT = ' '. FIELDCAT_LN-SELTEXT_L = 'Valor Neto'. APPEND FIELDCAT_LN TO GT_FIELDCAT. *el de la RSEG CLEAR FIELDCAT_IN. FIELDCAT_LN-FIELDNAME = 'WRBTR'. FIELDCAT_LN-TABNAME = 'i_interna'. *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT *FIELDCAT_LN-REF_FIELDNAME = 'WRBTR'. "<- REF FIELD IN THE DICTIONNARY *FIELDCAT_LN-REF_TABNAME = 'RSEG'. "<- REF TABLE IN THE DICTIONNARY FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY FIELDCAT_LN-NO_OUT = ' '. FIELDCAT_LN-SELTEXT_L = 'Imp.Pedido'. FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY APPEND FIELDCAT_LN TO GT_FIELDCAT. *el de la RBKP CLEAR FIELDCAT_IN. FIELDCAT_LN-FIELDNAME = 'RMWWR'. FIELDCAT_LN-TABNAME = 'i_interna'. *FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY FIELDCAT_LN-NO_OUT = ' '. FIELDCAT_LN-SELTEXT_L = 'Imp.Factura'. *FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY APPEND FIELDCAT_LN TO GT_FIELDCAT. * DATA SORTING AND SUBTOTAL DATA: GS_SORT TYPE SLIS_SORTINFO_ALV. CLEAR GS_SORT. GS_SORT-FIELDNAME = 'BELNR'. GS_SORT-SPOS = 1. GS_SORT-UP = 'X'. GS_SORT-SUBTOT = 'X'. APPEND GS_SORT TO GT_SORT. ENDFORM. FORM CALL_ALV. * ABAP List Viewer CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = G_REPID I_STRUCTURE_NAME = 'i_interna' IS_LAYOUT = GS_LAYOUT IT_FIELDCAT = GT_FIELDCAT[] IT_SORT = GT_SORT[] TABLES T_OUTTAB = i_interna EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. ENDFORM. "CALL_ALV FORM GENERAR_ALV_LIST. DATA:L_STUFF TYPE TY_STUFF. data:cont type integer value 0. G_PROGRAM = SY-REPID. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT' EXPORTING I_CALLBACK_PROGRAM = G_PROGRAM. LIMPIAR_TABLA i_interna_DETAIL. loop at i_interna. W_TABIX = SY-TABIX. if i_interna-belnr <> ''. APPEND i_interna to i_interna_DETAIL. else. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND' EXPORTING IT_FIELDCAT = GT_fieldcat[] IS_LAYOUT = GS_LAYOUT I_TABNAME = 'i_interna_detail' IT_EVENTS = GT_EVENTS IT_SORT = GT_SORT[] TABLES T_OUTTAB = T_TABLE. cont = cont + 1. if cont = 2. CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY' EXPORTING IS_PRINT = GT_PRINT. LIMPIAR_TABLA i_interna_DETAIL. cont = 0. ENDIF. endif. endloop. ENDFORM. La cuestion es que si lanzo el alv con CALL ALV me salen bien los subtotales y si lo hago por GENERAR_ALV_LIST no me salen los subtotales. no se cual puede ser el problema por que a priori todo me parece correcto. les agradeceria la posible ayuda que me puedan dar. es que estoy un poco desorientado con esto, gracias de antemano. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|