programa de documento fi

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

    #1

    programa de documento fi

    Hola
    necesito ayuda , tengo poco programando y este programa debería mostrarme los campos que ven en alv. pero ya debugie y nada mas no puedo insertar para que me a paresca el reporte lleno

    ---------------------------------------------------------------------
    REPORT ZCONSULTA_DOCFI.
    TABLES: BKPF ,BSEG.
    DATA:
    BEGIN OF ZDOCFI OCCURS 0,
    MANDT LIKE BKPF-MANDT,
    BUKRS LIKE BKPF-BUKRS,
    BELNR LIKE BKPF-BELNR,
    GJAHR LIKE BKPF-GJAHR,
    BLDAT LIKE BKPF-BLDAT,
    BUDAT LIKE BKPF-BUDAT,
    XBLNR LIKE BKPF-XBLNR,
    BKTXT LIKE BKPF-BKTXT,
    BLART LIKE BKPF-BLART,
    SGTXT LIKE BSEG-SGTXT,
    PRCTR LIKE BSEG-PRCTR,
    END OF ZDOCFI,
    e_layout TYPE lvc_s_layo,
    t_fcat TYPE lvc_t_fcat,
    fldtext TYPE char50.


    SELECT-OPTIONS:
    S_BUKRS FOR BKPF-BUKRS,
    S_BLDAT FOR BKPF-BLDAT,
    S_BUDAT FOR BKPF-BUDAT,
    S_BELNR FOR BKPF-BELNR,
    S_GJAHR FOR BKPF-GJAHR,
    S_XBLNR FOR BKPF-XBLNR,
    S_BKTXT FOR BKPF-BKTXT,
    S_BLART FOR BKPF-BLART.

    START-OF-SELECTION.
    SELECT SINGLE BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART
    INTO (ZDOCFI-BUKRS, ZDOCFI-BELNR, ZDOCFI-GJAHR, ZDOCFI-BLDAT, ZDOCFI-BUDAT, ZDOCFI-XBLNR, ZDOCFI-BKTXT, ZDOCFI-BLART)
    FROM BKPF
    WHERE BUKRS EQ S_BUKRS
    AND BELNR IN S_BELNR
    AND GJAHR IN S_GJAHR.

    SELECT SINGLE SGTXT PRCTR
    INTO (ZDOCFI-SGTXT, ZDOCFI-PRCTR)
    FROM BSEG
    WHERE BUKRS EQ ZDOCFI-BUKRS
    AND BELNR EQ ZDOCFI-BELNR
    AND GJAHR EQ ZDOCFI-GJAHR.

    PERFORM reporte_alv.
    *&--------------------------------------------------------------------*
    *&REPORTE_ALV
    *&--------------------------------------------------------------------*
    FORM reporte_alv.
    CHECK NOT ZDOCFI[] IS INITIAL.
    PERFORM catalogo_fcat.
    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'
    EXPORTING
    i_callback_program = sy-repid
    i_callback_html_top_of_page = 'MY_HTML_TOP_PAGE'
    is_layout_lvc = e_layout
    it_fieldcat_lvc = t_fcat
    TABLES
    t_outtab = ZDOCFI
    EXCEPTIONS
    program_error = 1.

    IF SY-TCODE ='ZDOCFI'.
    ENDIF.

    LOOP AT ZDOCFI.
    MOVE:
    sy-mandt TO ZDOCFI-MANDT,
    BKPF-BUKRS TO ZDOCFI-BUKRS,
    BKPF-BELNR TO ZDOCFI-BELNR,
    BKPF-GJAHR TO ZDOCFI-GJAHR,
    BKPF-BUDAT TO ZDOCFI-BUDAT,
    BKPF-BLDAT TO ZDOCFI-BLDAT,
    BKPF-XBLNR TO ZDOCFI-XBLNR,
    BKPF-BLART TO ZDOCFI-BLART,
    BSEG-SGTXT TO ZDOCFI-SGTXT,
    BSEG-PRCTR TO ZDOCFI-PRCTR.
    *Inserta datos en la tabla Z
    INSERT INTO zdocfi VALUES zdocfi.
    *Inserta datos en la tabla interna
    APPEND ZDOCFI.
    ENDLOOP.
    ENDFORM.
    *&---------------------------------------------------------------------*
    *&Form catalogo_fcat
    *&---------------------------------------------------------------------*
    FORM catalogo_fcat.
    PERFORM agrega_campos USING:
    'BURKS' 'BURKS' 'BKPF' space space,
    'BELNR' 'BELNR' 'BKPF' space space,
    'GJAHR' 'GJAHR' 'BKPF' space space,
    'BLDAT' 'BLDAT' 'BKPF' space space,
    'BUDAT' 'BUDAT' 'BKPF' space space,
    'XBLNR' 'XBLNR' 'BKPF' space space,
    'BKTXT' 'BKTXT' 'BKPF' space space,
    'BLART' 'BLART' 'BKPF' space space,
    'SGTXT' 'SGTXT' 'BSEG' space space,
    'PRCTR' 'PRCTR' 'BSEG' space space.
    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. " 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
    tenchy
  • Ripper87
    Member
    • dic
    • 37

    #2
    Primero llena la tabla, luego muestras el ALV.

    Es decir, primero viene el LOOP luego la llamada a la función REUSE_ALV_GRID_DISPLAY_LVC.

    Comentario

    • aaron alfonso
      Junior Member
      • may
      • 27

      #3
      RESULTADO NEGARIVO Ripper87

      aun que hice lo que me indicaste al momento de pasara a verificar no trae datos según "check not " la tabla viene vacía.
      ya lo modifique según entendí tu idea..
      REPORT ZCONSULTA_DOCFI.
      TABLES: BKPF ,BSEG.

      DATA:BEGIN OF T_DATOS OCCURS 0 ,
      BUKRS LIKE BKPF-BUKRS,
      BELNR LIKE BKPF-BELNR,
      GJAHR LIKE BKPF-GJAHR,
      BLDAT LIKE BKPF-BLDAT,
      BUDAT LIKE BKPF-BUDAT,
      XBLNR LIKE BKPF-XBLNR,
      BKTXT LIKE BKPF-BKTXT,
      BLART LIKE BKPF-BLART,
      SGTXT LIKE BSEG-SGTXT,
      PRCTR LIKE BSEG-PRCTR,
      END OF T_DATOS,
      e_layout TYPE lvc_s_layo,
      t_fcat TYPE lvc_t_fcat,
      fldtext TYPE char50.

      SELECT-OPTIONS:
      S_BELNR FOR BKPF-BELNR,
      S_BLDAT FOR BKPF-BLDAT,
      S_GJAHR FOR BKPF-GJAHR,
      S_BUDAT FOR BKPF-BUDAT,
      S_XBLNR FOR BKPF-XBLNR,
      S_BKTXT FOR BKPF-BKTXT,
      S_BLART FOR BKPF-BLART.
      PARAMETERS:
      P_BUKRS LIKE BKPF-BUKRS OBLIGATORY.
      *&--------------------------------------------------------------------*
      START-OF-SELECTION.
      PERFORM PIDE_DATOS.
      PERFORM REPORTE_ALV.
      *&--------------------------------------------------------------------*
      FORM PIDE_DATOS.
      SELECT BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART
      INTO T_DATOS FROM BKPF
      WHERE BUKRS EQ P_BUKRS
      AND BELNR IN S_BELNR
      AND GJAHR IN S_GJAHR.

      APPEND T_DATOS.

      LOOP AT T_DATOS.
      SELECT SINGLE SGTXT PRCTR
      INTO (T_DATOS-SGTXT,T_DATOS-PRCTR)
      FROM BSEG
      WHERE BUKRS EQ T_DATOS-BUKRS
      AND BELNR EQ T_DATOS-BELNR
      AND GJAHR EQ T_DATOS-GJAHR.
      ENDLOOP.

      ENDSELECT.
      ENDFORM.
      *&--------------------------------------------------------------------*
      * REPORTE_ALV
      *&--------------------------------------------------------------------*
      FORM REPORTE_ALV.
      CHECK NOT T_DATOS[] IS INITIAL.
      PERFORM catalogo_fcat.
      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'
      EXPORTING
      i_callback_program = sy-repid
      i_callback_html_top_of_page = 'MY_HTML_TOP_PAGE'
      is_layout_lvc = e_layout
      it_fieldcat_lvc = t_fcat
      TABLES
      t_outtab = T_DATOS
      EXCEPTIONS
      program_error = 1.

      IF SY-TCODE ='T_DATOS'.
      ENDIF.

      ENDFORM.
      *&---------------------------------------------------------------------*
      * Form catalogo_fcat
      *&---------------------------------------------------------------------*
      FORM catalogo_fcat.
      PERFORM agrega_campos USING:
      'BURKS' 'BURKS' 'BKPF' space space,
      'BELNR' 'BELNR' 'BKPF' space space,
      'GJAHR' 'GJAHR' 'BKPF' space space,
      'BLDAT' 'BLDAT' 'BKPF' space space,
      'BUDAT' 'BUDAT' 'BKPF' space space,
      'XBLNR' 'XBLNR' 'BKPF' space space,
      'BKTXT' 'BKTXT' 'BKPF' space space,
      'BLART' 'BLART' 'BKPF' space space,
      'SGTXT' 'SGTXT' 'BSEG' space space,
      'PRCTR' 'PRCTR' 'BSEG' space space.
      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. " 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
      tenchy

      Comentario

      • aaron alfonso
        Junior Member
        • may
        • 27

        #4
        Originalmente publicado por Ripper87
        Primero llena la tabla, luego muestras el ALV.

        Es decir, primero viene el LOOP luego la llamada a la función REUSE_ALV_GRID_DISPLAY_LVC.

        hola siguiendo mi problema ya lo resolvi muchas gracias por la ayuda no lo hubiera logrado sin tu comentario muchas gracias..
        tenchy

        Comentario

        • Desmoquattro
          Junior Member
          • may
          • 27

          #5
          Originalmente publicado por aaron alfonso

          hola siguiendo mi problema ya lo resolvi muchas gracias por la ayuda no lo hubiera logrado sin tu comentario muchas gracias..
          El problema era el EQ de bukrs.. (en vez de IN)

          Comentario

          • aaron alfonso
            Junior Member
            • may
            • 27

            #6
            help.!!

            hola estoy atorado he seguido consejos pero aun no me inserta los datos en alv aun si me muestra alv pero vacío.



            *&---------------------------------------------------------------------*
            *&Report ZVERCONSULTA
            *&---------------------------------------------------------------------*
            *&Analisis de Documentos FI
            *&---------------------------------------------------------------------*
            REPORT ZCONSULTA_DOCFI.

            TABLES:BKPF,BSEG.
            TYPES: BEGIN OF TY_BKPF,
            BUKRS TYPE BKPF-BUKRS,
            BELNR TYPE BKPF-BELNR,
            GJAHR TYPE BKPF-GJAHR,
            BLDAT TYPE BKPF-BLDAT,
            BUDAT TYPE BKPF-BUDAT,
            XBLNR TYPE BKPF-XBLNR,
            BKTXT TYPE BKPF-BKTXT,
            BLART TYPE BKPF-BLART,
            END OF TY_BKPF.

            TYPES: BEGIN OF TY_BSEG,
            BUKRS TYPE BSEG-BUKRS,
            BELNR TYPE BSEG-BELNR,
            GJAHR TYPE BSEG-GJAHR,
            SGTXT TYPE BSEG-SGTXT,
            PRCTR TYPE BSEG-PRCTR,
            END OF TY_BSEG.

            TYPES: BEGIN OF TY_DATOS,
            BUKRS TYPE BKPF-BUKRS,
            BELNR TYPE BKPF-BELNR,
            GJAHR TYPE BKPF-GJAHR,
            BLDAT TYPE BKPF-BLDAT,
            BUDAT TYPE BKPF-BUDAT,
            XBLNR TYPE BKPF-XBLNR,
            BKTXT TYPE BKPF-BKTXT,
            BLART TYPE BKPF-BLART,
            SGTXT TYPE BSEG-SGTXT,
            PRCTR TYPE BSEG-PRCTR,
            END OF TY_DATOS.

            DATA:e_layout TYPE lvc_s_layo,
            t_fcat TYPE lvc_t_fcat,
            fldtext TYPE char50.

            DATA: T_DATOS TYPE STANDARD TABLE OF TY_DATOS,
            T_BKPF TYPE STANDARD TABLE OF TY_BKPF,
            T_BSEG TYPE STANDARD TABLE OF TY_BSEG.

            DATA: WA_BKPF TYPE TY_BKPF,
            WA_BSEG TYPE TY_BSEG,
            WA_DATOS TYPE TY_DATOS.

            " FILTROS DE BUSQUEDA DE CAMPOS
            SELECT-OPTIONS:
            S_BELNR FOR BKPF-BELNR,
            S_BLDAT FOR BKPF-BLDAT,
            S_GJAHR FOR BKPF-GJAHR,
            S_BUDAT FOR BKPF-BUDAT,
            S_XBLNR FOR BKPF-XBLNR,
            S_BLART FOR BKPF-BLART.
            PARAMETERS:
            P_BUKRS LIKE BKPF-BUKRS OBLIGATORY.
            *&--------------------------------------------------------------------*
            START-OF-SELECTION."Ejecuta sub-rutinas
            PERFORM PIDE_DATOS. "Sub-rutina paso 1
            PERFORM REPORTE_ALV."Sub-rutina paso 2
            *&--------------------------------------------------------------------*
            FORM PIDE_DATOS.
            SELECT BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART
            FROM BKPF INTO TABLE T_BKPF
            WHERE
            BUKRS EQ P_BUKRS
            AND BELNR IN S_BELNR
            AND GJAHR IN S_GJAHR.

            IF T_BKPF[] IS NOT INITIAL.

            SELECT BUKRS BELNR GJAHR SGTXT PRCTR
            FROM BSEG INTO TABLE T_BSEG
            FOR ALL ENTRIES IN T_BKPF
            WHERE
            BUKRS EQ T_BKPF-BUKRS
            AND BELNR EQ T_BKPF-BELNR
            AND GJAHR EQ T_BKPF-GJAHR.
            ENDIF.

            LOOP AT T_BKPF INTO WA_BKPF.

            WA_DATOS-BUKRS = WA_BKPF-BUKRS.
            WA_DATOS-BELNR = WA_BKPF-BELNR.
            WA_DATOS-GJAHR = WA_BKPF-GJAHR.
            WA_DATOS-XBLNR = WA_BKPF-XBLNR.
            WA_DATOS-BKTXT = WA_BKPF-BKTXT.
            WA_DATOS-BLART = WA_BKPF-BLART.
            WA_DATOS-BUDAT = WA_BKPF-BUDAT.
            WA_DATOS-BLDAT = WA_BKPF-BLDAT.

            IF SY-SUBRC EQ 0.
            WA_DATOS-SGTXT = WA_BSEG-SGTXT.
            WA_DATOS-PRCTR = WA_BSEG-PRCTR.
            ENDIF.

            READ TABLE T_BKPF INTO WA_BKPF
            WITH KEY BUKRS = WA_BKPF-BUKRS
            BELNR = WA_BKPF-BELNR
            GJAHR = WA_BKPF-GJAHR.

            ENDLOOP.

            APPEND WA_DATOS TO T_DATOS.
            CLEAR WA_DATOS.

            ENDFORM.
            *&--------------------------------------------------------------------*
            *REPORTE_ALV.- "SUBRUTINA" (SI AHI DATOS EMPIEZA)SI HAY DATOS,CARGA LOS DATOS Y EL CATALOGO.
            *SI NO(NO PRESENTA DATOS)
            *&--------------------------------------------------------------------*
            FORM REPORTE_ALV.
            CHECK NOT T_DATOS[] IS INITIAL." REVISA SI REALMENTE AHI DATOS EN (TAB.INT.) T_DATOS
            PERFORM catalogo_fcat.
            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
            i_callback_html_top_of_page = 'MY_HTML_TOP_PAGE'
            is_layout_lvc = e_layout
            it_fieldcat_lvc = t_fcat
            TABLES
            t_outtab = T_DATOS
            EXCEPTIONS
            program_error = 1.

            IF SY-TCODE ='ZCONSULTA_DOCFI'.
            ENDIF.
            ENDFORM.
            *&---------------------------------------------------------------------*
            * CATALOGO.- COLOCA LAS CABECERAS DEL ALV
            *&---------------------------------------------------------------------*
            FORM catalogo_fcat.
            PERFORM agrega_campos USING:
            'BUKRS' 'BUKRS' 'BKPF' space space,
            'BELNR' 'BELNR' 'BKPF' space space,
            'GJAHR' 'GJAHR' 'BKPF' space space,
            'BLDAT' 'BLDAT' 'BKPF' space space,
            'BUDAT' 'BUDAT' 'BKPF' space space,
            'XBLNR' 'XBLNR' 'BKPF' space space,
            'BKTXT' 'BKTXT' 'BKPF' space space,
            'BLART' 'BLART' 'BKPF' space space,
            'SGTXT' 'SGTXT' 'BSEG' space space,
            'PRCTR' 'PRCTR' 'BSEG' space space.
            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
            *-----------------------------------------------------------------------*
            tenchy

            Comentario

            • aaron alfonso
              Junior Member
              • may
              • 27

              #7
              el problema

              Originalmente publicado por Desmoquattro
              El problema era el EQ de bukrs.. (en vez de IN)
              la verdad es que aun siguo modificando en mi empresa me dieron los libros de abap y quieren que haga este programita pero aun no lo termina
              tenchy

              Comentario

              • jdelgado86
                Junior Member
                • nov
                • 24

                #8
                Mete esos dos dentro del loop



                APPEND WA_DATOS TO T_DATOS.
                CLEAR WA_DATOS.


                Algo asi:



                FORM PIDE_DATOS.
                SELECT BUKRS BELNR GJAHR BLDAT BUDAT XBLNR BKTXT BLART
                FROM BKPF INTO TABLE T_BKPF
                WHERE
                BUKRS EQ P_BUKRS
                AND BELNR IN S_BELNR
                AND GJAHR IN S_GJAHR.

                IF T_BKPF[] IS NOT INITIAL.

                SELECT BUKRS BELNR GJAHR SGTXT PRCTR
                FROM BSEG INTO TABLE T_BSEG
                FOR ALL ENTRIES IN T_BKPF
                WHERE
                BUKRS EQ T_BKPF-BUKRS
                AND BELNR EQ T_BKPF-BELNR
                AND GJAHR EQ T_BKPF-GJAHR.
                ENDIF.

                LOOP AT T_BKPF INTO WA_BKPF.

                WA_DATOS-BUKRS = WA_BKPF-BUKRS.
                WA_DATOS-BELNR = WA_BKPF-BELNR.
                WA_DATOS-GJAHR = WA_BKPF-GJAHR.
                WA_DATOS-XBLNR = WA_BKPF-XBLNR.
                WA_DATOS-BKTXT = WA_BKPF-BKTXT.
                WA_DATOS-BLART = WA_BKPF-BLART.
                WA_DATOS-BUDAT = WA_BKPF-BUDAT.
                WA_DATOS-BLDAT = WA_BKPF-BLDAT.


                aqui pon un read table a la t_bseg

                IF SY-SUBRC EQ 0.
                WA_DATOS-SGTXT = WA_BSEG-SGTXT.
                WA_DATOS-PRCTR = WA_BSEG-PRCTR.
                ENDIF.


                Aqui sobreescribes la work area wa_bkpf
                READ TABLE T_BKPF INTO WA_BKPF
                WITH KEY BUKRS = WA_BKPF-BUKRS
                BELNR = WA_BKPF-BELNR
                GJAHR = WA_BKPF-GJAHR.
                seleccionas el registro y lluego??


                Metiendo estos aca almacenas los registros uno a uno en t_datos
                APPEND WA_DATOS TO T_DATOS.
                CLEAR WA_DATOS.

                ENDLOOP.



                ENDFORM.


                Espero te sirva, saludos!

                Comentario

                • aaron alfonso
                  Junior Member
                  • may
                  • 27

                  #9
                  como puedo colocar estos campos en el mismo renglon

                  tengo problemas al ordenar los campos ya me trae mi código lo que deseo pero quiero ordenarlos PRCTR Y LIFNR no me aparecer sobre el mismo reglon.
                  alguien me puede ayudar...
                  Editado por última vez por aaron alfonso; 06/08/2014, 15:58:07.
                  tenchy

                  Comentario

                  • aaron alfonso
                    Junior Member
                    • may
                    • 27

                    #10
                    como puedo colocar estos campos en el mismo renglon

                    tengo problemas al ordenar los campos ya me trae mi código lo que deseo pero quiero ordenarlos PRCTR Y LIFNR no me aparecer sobre el mismo reglon.
                    alguien me puede ayudar...
                    *&---------------------------------------------------------------*
                    *&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
                    ZTERM LIKE BSEG-ZTERM, "Condiciòn de Pago
                    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_LIFNR FOR BSEG-LIFNR, "Número de cuenta del proveedor o acreedor
                    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 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 "Clase de 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 ).

                    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.

                    SELECT SINGLE ZTERM INTO T_DATOS-ZTERM FROM BSEG
                    WHERE BUKRS EQ T_DATOS-BUKRS
                    AND BELNR EQ T_DATOS-BELNR
                    AND GJAHR EQ T_DATOS-GJAHR.

                    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
                    'ZTERM' 'ZTERM' 'BSEG' space space. "MXN

                    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
                    *-----------------------------------------------------------------*
                    tenchy

                    Comentario

                    Trabajando...