Problema con Reporte ALV Tree

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • javico40
    Member
    • nov
    • 37

    #1

    Problema con Reporte ALV Tree

    Hola, buenos dias, cuando ejecuto el reporte alv tree que acabo de crear me da este error: GETWA_NOT_ASSIGNED

    ya revise todos los field symbol y todos los desasigno, reviso y reviso el codigo y no encuentro el error.

    Cσdigo:
    *&---------------------------------------------------------------------*
    *& Report  ZFI_RECONCILIATION_REPORT_R
    *& ABAPER: Javier Portilla
    *& DATE: 11/22/2011
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*
    
    REPORT  ZFI_RECONCILIATION_REPORT_R.
    
    TABLES: makt, mseg, ekbe, ekpo, s012.
    
    *——————————————————————*
    *  DECLARACION DE TYPES                                            *
    *——————————————————————*
    TYPES: BEGIN OF TY_SPFLI,
             matnr TYPE ekbe-matnr,
             ebeln TYPE ekbe-ebeln,
             belnr TYPE ekbe-belnr,
             menge TYPE ekbe-menge,
             dmbtr TYPE ekbe-dmbtr,
             bwart TYPE ekbe-bwart,
             budat TYPE ekbe-budat,
    END OF TY_SPFLI.
    
    TYPES: BEGIN OF TY_HEADER,
           matnr TYPE makt-matnr,
           maktx TYPE makt-maktx,
           ebeln TYPE ekbe-ebeln,
           belnr TYPE ekbe-belnr,
           menge TYPE ekbe-menge,
           dmbtr TYPE ekbe-dmbtr,
           bwart TYPE ekbe-bwart,
           budat TYPE ekbe-budat,
           netwr TYPE s012-netwr,
           wewrt_b TYPE s012-wewrt_b,
           rewrt TYPE s012-rewrt,
    END OF TY_HEADER.
    
    *—————————————————————–*
    *  DECLARACION DE TABLAS INTERNAS                                 *
    *—————————————————————–*
    DATA: T_SPFLI TYPE STANDARD TABLE OF TY_SPFLI
          WITH HEADER LINE,
          TAB_TREE TYPE STANDARD TABLE OF TY_SPFLI
          WITH HEADER LINE,
          T_TREE TYPE STANDARD TABLE OF TY_SPFLI
          WITH HEADER LINE,
          T_HEADER TYPE STANDARD TABLE OF TY_HEADER
          WITH HEADER LINE.
    
    *—————————————————————–*
    *  DECLARACION DE VARIABLES                                       *
    *—————————————————————–*
    DATA: G_ALV_TREE TYPE REF TO CL_GUI_ALV_TREE,
          L_HIERARCHY_HEADER TYPE TREEV_HHDR,
          GS_FIELDCAT TYPE LVC_S_FCAT,
          GT_FIELDCAT_TREE TYPE LVC_T_FCAT,
          G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    
    *—————————————————————–*
    *  DECLARACION DE FIELD-SYMBOLS                                   *
    *—————————————————————–*
    FIELD-SYMBOLS:  <HEADER> LIKE LINE OF T_HEADER,
                    <SPFLI> LIKE LINE OF T_SPFLI.
    
    *—————————————————————–*
    *   SELECTION-SCREEN                                              *
    *—————————————————————–*
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: Material FOR makt-matnr,
                    Purchase FOR s012-ekorg.
    SELECTION-SCREEN END OF BLOCK b1.
    
    *—————————————————————–*
    *   START-OF-SELECTION                                            *
    *—————————————————————–*
    START-OF-SELECTION.
    
      PERFORM OBTENER_DATOS.
    
      IF G_ALV_TREE IS INITIAL.
        PERFORM INIT_TREE.
    
        CALL METHOD CL_GUI_CFW=>FLUSH
                EXCEPTIONS CNTL_SYSTEM_ERROR = 1
                           CNTL_ERROR        = 2.
      ENDIF.
    
      CALL SCREEN 100.
    
    *—————————————————————–*
    *       FORM init_tree                                            *
    *—————————————————————–*
    FORM INIT_TREE.
    
      DATA: L_TREE_CONTAINER_NAME(30) TYPE C.
    
      L_TREE_CONTAINER_NAME = 'TREE_CONTROL'.
    
      CREATE OBJECT G_CUSTOM_CONTAINER
          EXPORTING
                CONTAINER_NAME = L_TREE_CONTAINER_NAME
          EXCEPTIONS
                CNTL_ERROR                  = 1
                CNTL_SYSTEM_ERROR           = 2
                CREATE_ERROR                = 3
                LIFETIME_ERROR              = 4
                LIFETIME_DYNPRO_DYNPRO_LINK = 5.
    
      CREATE OBJECT G_ALV_TREE
        EXPORTING
            PARENT              = G_CUSTOM_CONTAINER
            NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
            ITEM_SELECTION      = ''
            NO_HTML_HEADER      = 'X'
            NO_TOOLBAR          = ''
        EXCEPTIONS
            CNTL_ERROR                   = 1
            CNTL_SYSTEM_ERROR            = 2
            CREATE_ERROR                 = 3
            LIFETIME_ERROR               = 4
            ILLEGAL_NODE_SELECTION_MODE  = 5
            FAILED                       = 6
            ILLEGAL_COLUMN_NAME          = 7.
    
      PERFORM FILL_CATALOG_TREE.
      PERFORM BUILD_HIERARCHY_HEADER CHANGING L_HIERARCHY_HEADER.
    
      CALL METHOD G_ALV_TREE->SET_TABLE_FOR_FIRST_DISPLAY
           EXPORTING
                     IS_HIERARCHY_HEADER  = L_HIERARCHY_HEADER
           CHANGING
                     IT_OUTTAB        = T_TREE[]
                     IT_FIELDCATALOG  = GT_FIELDCAT_TREE.
    
      PERFORM CREATE_HIERARCHY.
    
    ENDFORM.
    
    *—————————————————————–*
    *   FORM FILL_CATALOG_TREE                                        *
    *—————————————————————–*
    FORM FILL_CATALOG_TREE.
    
      DATA: GS_FIELDCAT_ADD TYPE LVC_S_FCAT.
    
      CLEAR GS_FIELDCAT.
      GS_FIELDCAT-COL_POS   = 1.
      GS_FIELDCAT-REPTEXT   = 'Material'.
      GS_FIELDCAT-SCRTEXT_S = 'Material'.
      GS_FIELDCAT-FIELDNAME = 'MATNR'.
      GS_FIELDCAT-TABNAME = 'T_SPFLI'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
      CLEAR GS_FIELDCAT.
    
      GS_FIELDCAT-COL_POS   = 2.
      GS_FIELDCAT-REPTEXT   = 'PO'.
      GS_FIELDCAT-SCRTEXT_S = 'PO'.
      GS_FIELDCAT-FIELDNAME = 'EBELNS'.
      GS_FIELDCAT-TABNAME = 'T_SPFLI'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
    
      CLEAR GS_FIELDCAT.
      GS_FIELDCAT-COL_POS   = 3.
      GS_FIELDCAT-REPTEXT   = 'FI DOC'.
      GS_FIELDCAT-SCRTEXT_S = 'FI DOC'.
      GS_FIELDCAT-FIELDNAME = 'BELNR'.
      GS_FIELDCAT-TABNAME = 'T_SPFLI'.
      GS_FIELDCAT-OUTPUTLEN = '15'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
    
      CLEAR GS_FIELDCAT.
      GS_FIELDCAT-COL_POS   = 4.
      GS_FIELDCAT-REPTEXT   = 'MENGE'.
      GS_FIELDCAT-SCRTEXT_S = 'MENGE'.
      GS_FIELDCAT-FIELDNAME = 'QTY'.
      GS_FIELDCAT-TABNAME = 'T_SPFLI'.
      GS_FIELDCAT-OUTPUTLEN = '20'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
    
      CLEAR GS_FIELDCAT.
      GS_FIELDCAT-COL_POS   = 5.
      GS_FIELDCAT-REPTEXT   = 'AMOUNT'.
      GS_FIELDCAT-SCRTEXT_S = 'AMOUNT'.
      GS_FIELDCAT-FIELDNAME = 'DMBTR'.
      GS_FIELDCAT-TABNAME = 'T_SPFLI'.
      GS_FIELDCAT-OUTPUTLEN = '15'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
    
      CLEAR GS_FIELDCAT.
      GS_FIELDCAT-COL_POS   = 6.
      GS_FIELDCAT-REPTEXT   = 'DATE'.
      GS_FIELDCAT-SCRTEXT_S = 'DATE'.
      GS_FIELDCAT-FIELDNAME = 'BUDAT'.
      GS_FIELDCAT-TABNAME = 'T_SPFLI'.
      GS_FIELDCAT-OUTPUTLEN = '20'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT_TREE.
    
    ENDFORM.
    
    *———————————————————————*
    *       FORM build_hierarchy_header                                   *
    *———————————————————————*
    FORM BUILD_HIERARCHY_HEADER CHANGING
      P_HIERARCHY_HEADER TYPE TREEV_HHDR.
      CLEAR P_HIERARCHY_HEADER.
      P_HIERARCHY_HEADER-HEADING = 'Materials'(300).
      P_HIERARCHY_HEADER-WIDTH = 18.
      P_HIERARCHY_HEADER-WIDTH_PIX = ' '.
    ENDFORM.
    
    *———————————————————————*
    *       FORM create_hierarchy                                         *
    *———————————————————————*
    FORM CREATE_HIERARCHY.
    
      DATA: L_ROOT_KEY TYPE LVC_NKEY,
            L_NEXT_KEY TYPE LVC_NKEY,
            L_LAST_KEY TYPE LVC_NKEY,
            HEADER TYPE STRING,
            W_MENGE_TEXT(13) TYPE C.
    
      CLEAR L_ROOT_KEY.
    
      LOOP AT T_HEADER ASSIGNING <HEADER>.
        CLEAR L_ROOT_KEY.
        CLEAR L_NEXT_KEY.
        PERFORM ADD_NODE USING <HEADER>-MATNR L_ROOT_KEY
                         CHANGING L_NEXT_KEY.
        LOOP AT T_SPFLI ASSIGNING <SPFLI>
        WHERE MATNR EQ <HEADER>-MATNR.
    
          MOVE-CORRESPONDING  <SPFLI> TO TAB_TREE.
    
          PERFORM ADD_LEAF USING TAB_TREE L_NEXT_KEY
                           CHANGING L_LAST_KEY.
        ENDLOOP.
      ENDLOOP.
    
      CALL METHOD G_ALV_TREE->FRONTEND_UPDATE.
    
    ENDFORM.
    
    *———————————————————————*
    *       FORM ADD_NODE                                                 *
    *———————————————————————*
    FORM ADD_NODE USING L_NAME L_ROOT_KEY
                  CHANGING L_NEXT_KEY.
    
      DATA: L_NODE_TEXT TYPE LVC_VALUE,
            LS_TREE TYPE TY_SPFLI.
    
      L_NODE_TEXT =  L_NAME.
      CALL METHOD G_ALV_TREE->ADD_NODE
        EXPORTING
              I_RELAT_NODE_KEY = L_ROOT_KEY
              I_RELATIONSHIP   = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
              I_NODE_TEXT      = L_NODE_TEXT
              IS_OUTTAB_LINE   = LS_TREE
        IMPORTING
              E_NEW_NODE_KEY   = L_NEXT_KEY.
    
    ENDFORM.
    
    *———————————————————————*
    *       FORM ADD_LEAF                                                 *
    *———————————————————————*
    FORM ADD_LEAF USING L_TREE TYPE TY_SPFLI
                        L_NEXT_KEY
                  CHANGING L_LAST_KEY.
    
      CALL METHOD G_ALV_TREE->ADD_NODE
        EXPORTING
              I_RELAT_NODE_KEY = L_NEXT_KEY
              I_RELATIONSHIP   = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
              IS_OUTTAB_LINE   = TAB_TREE
           IMPORTING
              E_NEW_NODE_KEY = L_LAST_KEY.
    
    ENDFORM.
    
    *———————————————————————*
    *       FORM OBTENER_DATOS                                            *
    *———————————————————————*
    FORM OBTENER_DATOS.
    
    *  SELECT CARRID CONNID COUNTRYFR CITYFROM
    *         AIRPFROM COUNTRYTO CITYTO
    *  INTO TABLE T_SPFLI
    *  FROM SPFLI.
    
      SELECT   matnr
               ebeln
               belnr
               menge
               dmbtr
               bwart
               budat
          INTO TABLE T_SPFLI
          FROM ekbe
          WHERE ekbe~bwart IN ('101', '102')
          AND ekbe~matnr NE ''.
    
      IF SY-SUBRC EQ 0.
        LOOP AT T_SPFLI ASSIGNING <SPFLI>.
          MOVE <SPFLI>-MATNR TO T_HEADER-MATNR.
          APPEND T_HEADER.
        ENDLOOP.
    
        SORT T_HEADER.
        DELETE ADJACENT DUPLICATES FROM T_HEADER.
      ENDIF.
    
    ENDFORM.
Trabajando...