Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

ZVIEWTABLE PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Informativos
Lunes, 07 de Julio de 2003 20:54
Visualizador de contenidos de tabla
????SRCE
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: , .
***************         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 
                 TYPE ZDFIES-INTTYPE.
*
          MOVE  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.
************************************************************************
************************************************************************
******************* END OF PROGRAM *************************************




Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search