***********************************************************************
REPORT YYENNO01 LINE-SIZE 169. "19990909, Release 1.0
*
********************** HEADER **************
*
* Copyright (c) 1999 by Enno Wulff,
* Hommola & Wulff Unternehmensberatung GmbH
* http://www.hommola-wulff.de
*
* You can use or modify this report for your own work as long
* as you don't try to sell or republish it.
* In no event will the author be liable for indirect, special,
* Incidental, or consequental damages (if any) arising out of
* the use of this report.
*//////////////////////////////////////////////////////////////////////*
REPORT ZZENNO01.
TABLES: TFDIR, TRDIR, TLIBG.
SELECT-OPTIONS:
FUNKTGRP FOR TLIBG-AREA,
USER FOR TLIBG-UNAME.
PARAMETERS: DOWNLOAD AS CHECKBOX,
FILENAME LIKE RLGRAP-FILENAME.
DATA: BEGIN OF T OCCURS 500, "Report für DOWNLOAD
LINE(72),
END OF T,
BEGIN OF ALL OCCURS 500, "Report für DOWNLOAD
LINE(72),
END OF ALL,
XTRDIR LIKE TRDIR OCCURS 100 WITH HEADER LINE,
FUNK_MAIN(8),
X_FILENAME LIKE RLGRAP-FILENAME,
ZINCLUDE(8).
INITIALIZATION.
USER-SIGN = 'I'.
USER-OPTION = 'EQ'.
USER-LOW = SY-UNAME.
APPEND USER.
FUNKTGRP-SIGN = 'I'.
FUNKTGRP-OPTION = 'BT'.
FUNKTGRP-LOW = 'Z000'.
FUNKTGRP-HIGH = 'ZZZZ'.
APPEND FUNKTGRP.
CONCATENATE 'C:ABAP' SY-UNAME 'FUNKTBST' INTO FILENAME.
START-OF-SELECTION.
SELECT * FROM TLIBG WHERE AREA IN FUNKTGRP.
CONCATENATE 'SAPL' TLIBG-AREA INTO FUNK_MAIN.
SELECT SINGLE * FROM TRDIR WHERE NAME = FUNK_MAIN
AND ( CNAM IN USER OR UNAM IN USER ).
CHECK SY-SUBRC = 0.
APPEND TRDIR TO XTRDIR.
ENDSELECT.
LOOP AT XTRDIR.
TRDIR = XTRDIR.
REFRESH T.
REFRESH ALL.
ALL = '** Funktionsbausteine: **'. APPEND ALL.
SELECT * FROM TFDIR WHERE PNAME = TRDIR-NAME.
CONCATENATE '**' TFDIR-FUNCNAME INTO ALL. APPEND ALL.
ENDSELECT. "TFDIR
READ REPORT TRDIR-NAME INTO T.
LOOP AT T.
IF T(10) CS 'INCLUDE'.
PERFORM DO_EXCLUDE USING T.
ELSE.
ALL = T. APPEND ALL.
ENDIF.
ENDLOOP.
FORMAT COLOR 5.
WRITE: / '*********************'.
WRITE: TRDIR-NAME.
WRITE: '*********************'.
FORMAT COLOR OFF.
LOOP AT ALL.
WRITE: / ALL.
ENDLOOP.
CHECK DOWNLOAD = 'X'.
CONCATENATE FILENAME '' TRDIR-NAME '.FUN' INTO X_FILENAME.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = X_FILENAME
FILETYPE = 'ASC'
TABLES
DATA_TAB = ALL
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
OTHERS = 8.
ENDLOOP.
*---------------------------------------------------------------------*
* FORM DO_EXCLUDE *
*---------------------------------------------------------------------*
FORM DO_EXCLUDE USING STRING.
DATA: NAME(8),
FALSCHER_ALARM,
ZEILE(72),
BEGIN OF INC OCCURS 500, "Report für DOWNLOAD
LINE(72),
END OF INC.
ZEILE = STRING.
IF ZEILE(1) '*'.
IF ZEILE CS 'TABLEFRAME' OR
ZEILE CS 'TABLEPROC' OR
ZEILE CS 'LSVIM'. " OR
* ZEILE CS 'STRUCTURE'.
ALL = ZEILE. APPEND ALL.
IF NOT ZEILE CS 'INCLUDE STRUCTURE'.
ALL = '*=->> Automatisch generiert - Include wird übersprungen'.
APPEND ALL. EXIT.
ENDIF.
ENDIF.
CLEAR FALSCHER_ALARM.
DO.
IF ZEILE(7) = 'INCLUDE'.
EXIT.
ELSEIF ZEILE(1) = '"'.
FALSCHER_ALARM = 'X'. EXIT.
ELSE.
SHIFT ZEILE.
ENDIF.
IF SY-INDEX > 100.
FALSCHER_ALARM = 'X'.
EXIT.
ENDIF.
ENDDO.
IF FALSCHER_ALARM = SPACE.
NAME = ZEILE+8(8).
CONCATENATE '*$*$ Start of Include ' NAME INTO ALL
SEPARATED BY SPACE.
APPEND ALL.
REFRESH INC.
READ REPORT NAME INTO INC.
LOOP AT INC.
IF INC CS 'INCLUDE'.
PERFORM DO_EXCLUDE USING INC.
ELSE.
ALL = INC. APPEND ALL.
ENDIF.
ENDLOOP.
CONCATENATE '*$*$ End of Include ' NAME INTO ALL
SEPARATED BY SPACE.
ELSE.
ALL = ZEILE.
ENDIF.
ELSE.
ALL = ZEILE.
ENDIF.
APPEND ALL.
ENDFORM.