REPORT ZZSNI001 MESSAGE-ID ZZ.
*
************************************************************************
* Reading via DD03P By Erikki Tikka *
* *
* Date 15.10.1996 *
* *
************************************************************************
SELECTION-SCREEN COMMENT /1(79) TEXT-100.
SELECTION-SCREEN COMMENT /1(79) TEXT-101. " Reading .....
SELECTION-SCREEN COMMENT /1(79) TEXT-102.
SELECTION-SCREEN COMMENT /1(79) TEXT-103.
SELECTION-SCREEN ULINE.
*
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(35) TEXT-110. " Input-file
PARAMETERS: INFILE(45) TYPE C DEFAULT '/usr/sap/trans/testdata/eti/'
LOWER CASE.
SELECTION-SCREEN END OF LINE.
*
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(35) TEXT-120. "How many headers
PARAMETERS: CHOOSE(5) TYPE C DEFAULT '999'.
SELECTION-SCREEN END OF LINE.
*
*
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(35) TEXT-140.
PARAMETERS: LIST TYPE C DEFAULT 'x'. "Listing
SELECTION-SCREEN END OF LINE.
*
DATA:CNTI TYPE I, CNTO LIKE CNTI, CNT1 LIKE CNTI.
*
DATA:INDATA(3000) TYPE C.
*
TABLES:BKPF, DD03P.
*
DATA:BEGIN OF INTAB OCCURS 0.
INCLUDE STRUCTURE DD03P.
DATA:END OF INTAB.
*
DATA:BEGIN OF BVBAKKOM.
INCLUDE STRUCTURE BVBAKKOM.
DATA:END OF BVBAKKOM.
*
DATA:BEGIN OF BVBPAKOM.
INCLUDE STRUCTURE BVBPAKOM.
DATA:END OF BVBPAKOM.
*
DATA:BEGIN OF BVBAPKOM.
INCLUDE STRUCTURE BVBAPKOM.
DATA:END OF BVBAPKOM.
*
DATA:A(35).
FIELD-SYMBOLS:<F>.
*
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
*----------------------------------------------------------------------*
OPEN DATASET INFILE FOR INPUT IN TEXT MODE.
IF SY-SUBRC <> 0.
MESSAGE E999 WITH 'Open failed for input-file' INFILE.
ENDIF.
*----------------------------------------------------------------------*
START-OF-SELECTION.
*----------------------------------------------------------------------*
WRITE: / 'Input', INFILE.
WRITE: /.
WHILE SY-SUBRC = 0.
READ DATASET INFILE INTO INDATA.
IF SY-SUBRC = 0.
CNTI = CNTI + 1.
IF INDATA(8) <> 'BVBAKKOM'.
CNT1 = CNT1 + 1.
ENDIF.
IF CNT1 <= CHOOSE AND LIST = 'X'.
PERFORM LISTING.
ELSE.
SY-SUBRC = 4.
ENDIF.
ENDIF.
ENDWHILE.
*
PERFORM END-REPORT.
*
*---------------------------------------------------------------------*
* Listing of one record
*---------------------------------------------------------------------*
FORM LISTING.
*
CASE INDATA(8).
*
WHEN 'BVBAKKOM'.
SELECT * FROM DD03P INTO TABLE INTAB
WHERE TABNAME = 'BVBAKKOM'
AND DDLANGUAGE = 'E'.
SORT INTAB BY POSITION.
BVBAKKOM = INDATA.
WRITE /.
DO.
ASSIGN COMPONENT SY-INDEX OF
STRUCTURE BVBAKKOM TO <F>.
IF SY-SUBRC <> 0. EXIT. ENDIF.
READ TABLE INTAB INDEX SY-INDEX.
A = <F>.
WRITE:/ INTAB-FIELDNAME, A.
ENDDO.
*
WHEN 'BVBPAKOM'.
SELECT * FROM DD03P INTO TABLE INTAB
WHERE TABNAME = 'BVBPAKOM'
AND DDLANGUAGE = 'E'.
SORT INTAB BY POSITION.
BVBPAKOM = INDATA.
WRITE /.
DO.
ASSIGN COMPONENT SY-INDEX OF
STRUCTURE BVBPAKOM TO <F>.
IF SY-SUBRC <> 0. EXIT. ENDIF.
READ TABLE INTAB INDEX SY-INDEX.
A = <F>.
WRITE:/ INTAB-FIELDNAME, A.
ENDDO.
*
WHEN 'BVBAPKOM'.
SELECT * FROM DD03P INTO TABLE INTAB
WHERE TABNAME = 'BVBAPKOM'
AND DDLANGUAGE = 'E'.
SORT INTAB BY POSITION.
BVBAPKOM = INDATA.
WRITE /.
DO.
ASSIGN COMPONENT SY-INDEX OF
STRUCTURE BVBAPKOM TO <F>.
IF SY-SUBRC <> 0. EXIT. ENDIF.
READ TABLE INTAB INDEX SY-INDEX.
A = <F>.
WRITE:/ INTAB-FIELDNAME, A.
ENDDO.
ENDCASE.
SY-SUBRC = 0.
ENDFORM.
*---------------------------------------------------------------------*
* counters
*---------------------------------------------------------------------*
FORM END-REPORT.
*
WRITE /.
WRITE: / 'Input ', CNTI.
ENDFORM.