#1
|
|||
|
|||
como ordenar
en un reporte el campo prctr y linfr no están alineados sobre la mismo renglón que debo hacer si los campos llaves son iguales ...por que no se ordenan
__________________
tenchy |
#2
|
|||
|
|||
respuesta
Hola,
Por favor danos mas detalle o subi el codigo para poder analizarlo mejor. Saludos!
__________________
Sebas Desarrollador ABAP. |
#3
|
|||
|
|||
Codigo
*&---------------------------------------------------------------------*
*&Report ZVERCONSULTA *&---------------------------------------------------------------------* *&Analisis de Documentos FI *&---------------------------------------------------------------------* REPORT ZCONSULTA_DOCFI. TABLES: BKPF ,BSEG. "pasar como parámetro una tabla interna por referencia DATA:BEGIN OF T_DATOS OCCURS 0, "Estructura T_DATOS con Cabecera... BUKRS LIKE BKPF-BUKRS, "Sociedad BELNR LIKE BKPF-BELNR, "Número de un documento contable GJAHR LIKE BKPF-GJAHR, "Ejercicio BLART LIKE BKPF-BLART, "Clase de documento BLDAT LIKE BKPF-BLDAT, "Fecha de documento en documento BUDAT LIKE BKPF-BUDAT, "Fecha de contabilización en el documento XBLNR LIKE BKPF-XBLNR, "Número de documento de referencia BKTXT LIKE BKPF-BKTXT, "Texto de cabecera de documento WAERS LIKE BKPF-WAERS, "Clave de moneda local STBLG LIKE BKPF-STBLG, "Número del documento de anulación PRCTR LIKE BSEG-PRCTR, "Centro de beneficio SGTXT LIKE BSEG-SGTXT, "Texto posición LIFNR LIKE BSEG-LIFNR, "Número de cuenta del proveedor o acreedor DMBTR LIKE BSEG-DMBTR, "Importe en moneda local END OF T_DATOS. DATA: CONTADOR TYPE I. "Contador tipo (i) Entero... SELECT-OPTIONS: "Filtros de busqueda.... S_BUKRS FOR BKPF-BUKRS, "Sociedad S_BELNR FOR BKPF-BELNR, "Número de un documento contable S_BLART FOR BKPF-BLART, "Clase de documento S_BLDAT FOR BKPF-BLDAT, "Fecha de documento en documento S_BUDAT FOR BKPF-BUDAT, "Fecha de contabilización en el documento S_XBLNR FOR BKPF-XBLNR, "Número de documento de referencia S_WAERS FOR BKPF-WAERS, "Clave de moneda local S_STBLG FOR BKPF-STBLG, "Número del documento de anulación S_PRCTR FOR BSEG-PRCTR, "Centro de beneficio S_DMBTR FOR BSEG-DMBTR. "Importe en moneda local PARAMETERS: P_GJAHR LIKE BKPF-GJAHR OBLIGATORY. "Ejercicio Campo Obligatorio DATA:e_layout TYPE lvc_s_layo, "Estructura de layout t_fcat TYPE lvc_t_fcat, fldtext TYPE char50. *&--------------------------------------------------------------------------------------* START-OF-SELECTION. "Ejecuta sub-rutinas paso a paso PERFORM PIDE_DATOS. "Sub-rutina paso 1ra PERFORM REPORTE_ALV. "Sub-rutina paso 2da *&--------------------------------------------------------------------------------------* FORM PIDE_DATOS. "Sub-rutina 1ra. SELECT DISTINCT BUKRS BELNR GJAHR BLART BLDAT BUDAT XBLNR BKTXT WAERS STBLG INTO T_DATOS FROM BKPF WHERE BUKRS IN S_BUKRS "Sociedad AND BELNR IN S_BELNR "Número de un documento contable AND GJAHR EQ P_GJAHR "Ejercicio AND BLART IN S_BLART "Clase de documento AND BLDAT IN S_BLDAT "Fecha de documento en documento AND BUDAT IN S_BUDAT "Fecha de contabilización en el documento AND XBLNR IN S_XBLNR "Número de documento de referencia AND STBLG IN S_STBLG. "Número del documento de anulación APPEND T_DATOS. "Contener... ENDSELECT. LOOP AT T_DATOS. "Ciclo... CONTADOR = SY-TABIX. SELECT SINGLE PRCTR INTO T_DATOS-PRCTR FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR AND ( PRCTR NE T_DATOS-PRCTR OR LIFNR EQ T_DATOS-LIFNR ). SELECT SINGLE LIFNR INTO T_DATOS-LIFNR FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR AND ( PRCTR EQ T_DATOS-PRCTR OR LIFNR NE T_DATOS-LIFNR OR NOT LIFNR =' ' ). SELECT SINGLE SGTXT INTO T_DATOS-SGTXT FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR. SELECT SINGLE DMBTR INTO T_DATOS-DMBTR FROM BSEG WHERE BUKRS EQ T_DATOS-BUKRS AND BELNR EQ T_DATOS-BELNR AND GJAHR EQ T_DATOS-GJAHR. IF SY-SUBRC = '0'. ENDIF. MODIFY T_DATOS INDEX CONTADOR. "Modifica el contador... ENDLOOP. ENDFORM. *&-------------------------------------------------------------------------------------------------------------------* FORM REPORTE_ALV."Sub-rutina 2da. CHECK NOT T_DATOS[] IS INITIAL. "REVISA SI REALMENTE AHI DATOS EN (TAB.INT.) SE CUMPLE PASAR A CATALOGO PERFORM catalogo_fcat. "CATALOGO SUB-RUTINA e_layout-zebra = 'X'. e_layout-sel_mode = 'D'. e_layout-no_rowmove = 'X'. e_layout-col_opt = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' "LLAMADO DE FUNCION ALV. EXPORTING i_callback_program = sy-repid is_layout_lvc = e_layout it_fieldcat_lvc = t_fcat TABLES t_outtab = T_DATOS "LLAMANDO ALA TAB._INT. EXCEPTIONS program_error = 1. ENDFORM. *&---------------------------------------------------------------------* *& CATALOGO.- COLOCA LAS CABECERAS DEL ALV *&---------------------------------------------------------------------* FORM catalogo_fcat. PERFORM agrega_campos USING: 'BUKRS' 'BUKRS' 'BKPF' space space, "SOCIEDAD 'BELNR' 'BELNR' 'BKPF' space space, "NUM.DOC. 'GJAHR' 'GJAHR' 'BKPF' space space, "EJERCICIO 'BLART' 'BLART' 'BKPF' space space, "CLASE 'BLDAT' 'BLDAT' 'BKPF' space space, "FECHA DE DOC. 'BUDAT' 'BUDAT' 'BKPF' space space, "FECHA DE CONTABILIDAD 'XBLNR' 'XBLNR' 'BKPF' space space, "REFERENCIA 'BKTXT' 'BKTXT' 'BKPF' space space, "TEXT.CAB.DOC. 'WAERS' 'WAERS' 'BKPF' space space, "CLV.DE MONEDA 'STBLG' 'STBLG' 'BKPF' space space, 'PRCTR' 'PRCTR' 'BSEG' space space, 'SGTXT' 'SGTXT' 'BSEG' space space, "TEXTO. 'LIFNR' 'LIFNR' 'BSEG' space space, "AGREDOR 'DMBTR' 'DMBTR' 'BSEG' space space. "IMPORTE ML ENDFORM. " CATALOGO_FCAT *&---------------------------------------------------------------------* *& AGREGA CAMPOS *&---------------------------------------------------------------------* FORM agrega_campos USING value(p1) value(p2) value(p3) value(p4) value(p5). DATA l_fcat TYPE lvc_s_fcat. l_fcat-fieldname = p1. l_fcat-ref_field = p2. l_fcat-ref_table = p3. l_fcat-coltext = p4. l_fcat-inttype = p5. l_fcat-col_opt = 'X'. IF p5 NE space. l_fcat-intlen = 20. l_fcat-decimals = 2. l_fcat-decimals_o = 2. ENDIF. APPEND l_fcat TO t_fcat. ENDFORM. " finliza agrega_campos *&---------------------------------------------------------------------* *&Form MY_USER_COMMAND *&---------------------------------------------------------------------* FORM my_user_command USING p_ucomm TYPE sy-ucomm p_selfield TYPE slis_selfield. CASE p_ucomm. WHEN 'REGR' OR 'SALI'. p_selfield-exit = abap_true. ENDCASE. ENDFORM. " MY_USER_COMMAND *-----------------------------------------------------------------------* OJALA PUEDAN AYUDARME
__________________
tenchy |
#4
|
|||
|
|||
Y si en lugar de hacer el loop a t_datos y hacer select singles dentro de el mismo haces selects for all entries usando t_datos y después, en un loop a t_datos, llenas otra tabla t_datos2 usando reads?
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|