Enterprise Resource Planning PortalERPGenie.COM Enterprise Resource Planning Portal

   Advertise | Founder BLOG

Web ERPGenie.COM  Other Search Options

Home | Vote for us |

ERPGenie.COM -> SAP Technical -> ABAP -> Example code -> Table browser

   REPORT ZAPC0005 LINE-SIZE 255.    "Release 3.1G, 4.5A

*//////////////////////////////////////////////////////////////////////*

    MOVE: 'Read and display variable external tables (max. 8000 bytes) '

           TO SY-TITLE.

*//////////////////////////////////////////////////////////////////////

    PARAMETERS: P_TABNAM LIKE DD02L-TABNAME OBLIGATORY,

                P_NUMBER(4) TYPE N DEFAULT '020',

                P_SKIP(4) TYPE N DEFAULT '0'.

***************         External tables        **********************

    TABLES  DD02L.

*

***************         Variables              **********************

    DATA: ZX030L LIKE X030L.

    DATA: FUN_OK(1) TYPE N.

    DATA: OFF TYPE I.

    DATA: ZLEN TYPE I.

    DATA: WORK(8000) TYPE C.

    DATA: WORK1(8000) TYPE C.

    DATA: TABLEN TYPE I VALUE 255.

    DATA  TAB_OK(1) TYPE N.

*

***************         internal tables        **********************

   DATA BEGIN OF ZDFIES OCCURS 1000.

          INCLUDE STRUCTURE DFIES.

   DATA END OF ZDFIES.

***************         Field symbols          **********************

     FIELD-SYMBOLS: <FS1>, <FS2>.

***************         Macro definition       **********************

    DEFINE HEAD1.

*

      ZLEN = ZLEN + ZDFIES-LENG.

      IF OFF EQ 0.

         MOVE '|' TO WORK+OFF(1).

         ADD 1 TO OFF.

      ENDIF.

      IF ZLEN LE TABLEN.

         MOVE &1 TO WORK+OFF(&2).

         ADD &2 TO OFF.

         MOVE '|' TO WORK+OFF(1).

         ADD 1 TO OFF.

      ENDIF.

*

    END-OF-DEFINITION.

*//////////////////////////////////////////////////////////////////////*

*************               Main Section          *******************

*//////////////////////////////////////////////////////////////////////*

*

    PERFORM CHECK-TABLE-CLASS.

    PERFORM READ-DIRECT-TABLE.

*

*//////////////////////////////////////////////////////////////////////*

*************                Subroutines          *******************

*//////////////////////////////////////////////////////////////////////*

************************************************************************

*                   Check tablename and tableclass

************************************************************************

    FORM CHECK-TABLE-CLASS.

*

     CLEAR TAB_OK.

*.......................................................................

      SELECT * FROM DD02L

             WHERE TABNAME EQ P_TABNAM.

             TAB_OK = 1.

             IF DD02L-TABCLASS CS 'TRANSP' OR

                DD02L-TABCLASS CS 'POOL' OR

                DD02L-TABCLASS CS 'CLUSTER '.

                TAB_OK = 2.

             ENDIF.

      ENDSELECT.

*

      IF TAB_OK EQ 0.

         WRITE: /1 'Sorry, table name not found : ', P_TABNAM.

         WRITE: /1 'Report must be canceled' COLOR 6.

         STOP.

      ENDIF.

*

      IF TAB_OK EQ 1.

         WRITE: /1 'Tableclass not ''TRANSP'', ''POOL'' or ''CLUSTER'' :',

                    DD02L-TABCLASS COLOR 6.

*...................... INNTAB = no external table

*...................... VIEW   = perhaps long distance run

*...................... APPEND = APPEND-structur

*.......................................................................

         SKIP.

         WRITE: /1 'DD02L: ', DD02L+0(80).

         WRITE: /1 'Report must be canceled' COLOR 6.

         STOP.

      ENDIF.

*

    ENDFORM.

************************************************************************

*                   read table direct

***********************************************************************.

   FORM READ-DIRECT-TABLE.

*

    DATA: OFFS     TYPE I.

    DATA: LEN2(5) TYPE N.

    DATA: ANZ_NUMB TYPE I.

*.......................................................................

*

     IF P_NUMBER EQ 0.

        WRITE: /1 'No number of tablerows entered ''P_NUMBER = 0 '' '.

        EXIT.

     ENDIF.

******************** Headline ******************************************

*

    PERFORM LESEN-FIELDTAB USING P_TABNAM.

*

    IF FUN_OK EQ 1.

       WRITE: /1 'Content of Table : ' COLOR 3 , P_TABNAM COLOR 6.

       LEN2 = ZDFIES-OFFSET + ZDFIES-INTLEN.

       WRITE: /1 'Maximum length   : ', LEN2 COLOR 4.

       WRITE: /1 'Type of table    : ', DD02L-TABCLASS COLOR 5.

       SKIP 2. ULINE.

*

       LOOP AT ZDFIES.

        HEAD1 ZDFIES-FIELDNAME  ZDFIES-LENG.

       ENDLOOP.


 
       WRITE: /1 WORK COLOR 3.

       ULINE.

       CLEAR: WORK, OFF.

******************** content  ******************************************

      SELECT * FROM  (P_TABNAM) INTO WORK1.

*

        IF SY-DBCNT GT P_SKIP.

           ADD 1 TO ANZ_NUMB.

           IF ANZ_NUMB GT P_NUMBER.

              EXIT.

           ENDIF.

*

           LOOP AT ZDFIES.

             IF SY-TABIX EQ 1.

                MOVE '|' TO WORK+OFF(1).

                ADD 1 TO OFF.

             ENDIF.

             ASSIGN WORK1+ZDFIES-OFFSET(ZDFIES-INTLEN) TO <FS1>

                    TYPE ZDFIES-INTTYPE.

*

             MOVE <FS1> TO WORK+OFF(ZDFIES-LENG).

             ADD ZDFIES-LENG TO OFF.

             MOVE  '|' TO WORK+OFF(1).

             ADD 1 TO OFF.

             IF TABLEN LT OFF.

                EXIT.

             ENDIF.

           ENDLOOP.

*

           WRITE: /1 WORK.

           CLEAR: OFF, WORK, WORK1.

        ENDIF.

      ENDSELECT.

    ELSE.

       WRITE: /1 'NO DFIES found'.

    ENDIF.

*

   ENDFORM.

************************************************************************

*                 read info about table

************************************************************************

    FORM LESEN-FIELDTAB USING TNAME.

*

     CLEAR FUN_OK.

*.......................................................................

     CALL FUNCTION 'GET_FIELDTAB'

      EXPORTING

          LANGU              = SY-LANGU

          ONLY               = SPACE

          TABNAME            = TNAME

          WITHTEXT           = 'X'

      IMPORTING

          HEADER             = ZX030L

      TABLES

          FIELDTAB           = ZDFIES

      EXCEPTIONS

         INTERNAL_ERROR      = 01

         NO_TEXTS_FOUND      = 02

         TABLE_HAS_NO_FIELDS = 03

         TABLE_NOT_ACTIV     = 04.

*

     CASE SY-SUBRC.

        WHEN 0.

          MOVE 1 TO FUN_OK.

          LOOP AT ZDFIES.

          ENDLOOP.

*

        WHEN OTHERS.

           WRITE: /1 'Error ''GET_FIELDTAB'' :', SY-SUBRC.

      ENDCASE.

*

    ENDFORM.

 

Contact Us | Polls | Add URL | Contribute | About | Privacy | Terms | Feedback | Help!

Message Board | Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job
Genie Press | ERPTopSites | Financials Consultant | Consultant Review | Gallia Consulting | Supply Chain Project | SAP Financials Forum