como ordenar

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • aaron alfonso
    Junior Member
    • may
    • 27

    #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
  • sconoredhot
    Senior Member
    • feb
    • 341

    #2
    respuesta

    Hola,
    Por favor danos mas detalle o subi el codigo para poder analizarlo mejor.
    Saludos!
    Sebas

    Desarrollador ABAP.

    Comentario

    • aaron alfonso
      Junior Member
      • may
      • 27

      #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

      Comentario

      • AlexFrias
        Junior Member
        • jun
        • 9

        #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?

        Comentario

        Trabajando...