|  | 
| cobol就算了,虽然eclipse 支持,但是懒得下载了,何况abap就是从cobol来的。 
 abap倒是现成的。
 abap 打印机测试代码
 REPORT ZVUJDRUT.
 **************************************
 * Druckertest                        *
 **************************************
 *
 SELECTION-SCREEN BEGIN OF BLOCK ULLI WITH FRAME TITLE TEXT-100.
 * PARAMETERS Ausgabegeraet und Aufbereitung
 SELECTION-SCREEN BEGIN OF BLOCK GERAET WITH FRAME TITLE TEXT-200.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN POSITION 12.
 PARAMETERS AGERAET LIKE TSP01-RQDEST OBLIGATORY.
 SELECTION-SCREEN COMMENT 1(10) TEXT-210.
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN POSITION 12.
 PARAMETERS AUFBER LIKE TSP1T-PAPART OBLIGATORY.
 SELECTION-SCREEN COMMENT 1(10) TEXT-220.
 SELECTION-SCREEN COMMENT 35(30) TEXT-221.
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN END OF BLOCK GERAET.
 * PARAMETERS Listengroesse
 SELECTION-SCREEN BEGIN OF BLOCK GROSS WITH FRAME TITLE TEXT-300.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN POSITION 12.
 PARAMETERS HOCH(2) TYPE N DEFAULT 65.
 SELECTION-SCREEN COMMENT 1(10) TEXT-310.
 SELECTION-SCREEN COMMENT 20(30) TEXT-311.
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN POSITION 12.
 PARAMETERS BREIT(3) TYPE N DEFAULT 80.
 SELECTION-SCREEN COMMENT 1(10) TEXT-320.
 SELECTION-SCREEN COMMENT 20(30) TEXT-321.
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN POSITION 12.
 PARAMETERS SEITEN(5) TYPE N DEFAULT 1.
 SELECTION-SCREEN COMMENT 1(10) TEXT-330.
 SELECTION-SCREEN COMMENT 20(30) TEXT-331.
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN END OF BLOCK GROSS.
 * PARAMETERS rest
 SELECTION-SCREEN BEGIN OF BLOCK REST WITH FRAME TITLE TEXT-400.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN POSITION 12.
 PARAMETERS STRESS(5) TYPE N DEFAULT 1.
 SELECTION-SCREEN COMMENT 1(10) TEXT-410.
 SELECTION-SCREEN COMMENT 20(30) TEXT-411.
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN POSITION 12.
 PARAMETERS COMM_X(5) TYPE N DEFAULT 50.
 SELECTION-SCREEN COMMENT 1(10) TEXT-420.
 SELECTION-SCREEN COMMENT 20(30) TEXT-421.
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN POSITION 12.
 PARAMETERS SOFORT AS CHECKBOX DEFAULT 'X'.
 SELECTION-SCREEN COMMENT 1(10) TEXT-430.
 SELECTION-SCREEN COMMENT 20(30) TEXT-431.
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN END OF BLOCK REST.
 SELECTION-SCREEN END OF BLOCK ULLI.
 TABLES:  TSP03,                        "Liste der Ausgabegeräte
 TSP06,                        "Aufbereitungsarten fuer Gerät
 T022D,                        "Print-Controls
 T100,                         "Nachrichtentexte
 USR03.                        "Benutzeradresswerte
 DATA :   BEGIN OF TESTZEICHEN OCCURS 50, "Testzeichenmuster
 TESTZ(80) TYPE C,
 END OF TESTZEICHEN.
 DATA :   BEGIN OF INFOTAB OCCURS 50,   "Runtime- Infos
 INFO(80) TYPE C,
 END OF INFOTAB.
 DATA :   MESSAGE(256) TYPE C,          "Nachrichtenaufbereitung
 ZEILENZAEHLER LIKE HOCH,      "Zeilenanzahl
 ZYKLEN LIKE HOCH,
 AUTOMAT LIKE SOFORT VALUE ' ',
 ZYKLAKT(5) TYPE N,
 BARCODE LIKE HOCH,
 POSI LIKE BREIT,              "Spaltenanzahl
 SPALTI LIKE BREIT,
 VLNAME(12) TYPE C,            "Listenname
 COVERTEXT(68) TYPE C,         "Titel für Spoolauftrag
 EMPFAENGER(12) TYPE C,        "Empfänger der Liste
 ABTEILUNG(12) TYPE C,         "Abteilung des Empfängers
 AGTYPE LIKE TSP03-PATYPE,     "Typ Ausgabegerät
 COMM_CNT LIKE COMM_X,         "Commit Counter
 ERROR TYPE N.                 "Fehlerindikator
 * Ueberpruefen der Eingabeparameter und evtl. Ruecksetzen auf Default
 IF HOCH LT 40.
 HOCH = 40.
 ENDIF.
 IF HOCH GT 90.
 HOCH = 90.
 ENDIF.
 IF BREIT LT 80.
 BREIT = 80.
 ENDIF.
 IF BREIT GT 255.
 BREIT = 255.
 ENDIF.
 IF SEITEN LT 1.
 SEITEN = 1.
 ENDIF.
 IF SEITEN GT 99999.
 SEITEN = 1.
 ENDIF.
 ZYKLEN  = HOCH - 3.
 BARCODE = HOCH - 4.
 ERROR = 0.                             "Reset Fehlerindikator
 COMM_CNT = 0.                          "Reset Commit Counter
 * Start- Nachricht
 CLEAR INFOTAB.
 PERFORM FUELLE_INFO USING 'iRuntime protocol ZVUJDRUT'.
 PERFORM FUELLE_INFO USING 'i========================='.
 CLEAR INFOTAB.
 PERFORM FUELLE_INFO USING 'ninput parameters :'.
 MOVE 'n    output device        ' TO MESSAGE.
 MOVE AGERAET TO MESSAGE+26.
 PERFORM FUELLE_INFO USING MESSAGE.
 MOVE 'n    output format        ' TO MESSAGE.
 MOVE AUFBER TO MESSAGE+26.
 PERFORM FUELLE_INFO USING MESSAGE.
 MOVE 'n    length of list       ' TO MESSAGE.
 IF HOCH NE 0.
 MOVE HOCH TO MESSAGE+26.
 ELSE.
 MOVE '  ' TO MESSAGE+26.
 ENDIF.
 PERFORM FUELLE_INFO USING MESSAGE.
 MOVE 'n    width of list        ' TO MESSAGE.
 IF BREIT NE 0.
 MOVE BREIT TO MESSAGE+26.
 ELSE.
 MOVE '   ' TO MESSAGE+26.
 ENDIF.
 PERFORM FUELLE_INFO USING MESSAGE.
 MOVE 'n    number of pages      ' TO MESSAGE.
 IF SEITEN NE 1.
 MOVE SEITEN TO MESSAGE+26.
 ELSE.
 MOVE '     ' TO MESSAGE+26.
 ENDIF.
 PERFORM FUELLE_INFO USING MESSAGE.
 MOVE 'n    number of requests   ' TO MESSAGE.
 IF SEITEN NE 1.
 MOVE STRESS TO MESSAGE+26.
 ELSE.
 MOVE '     ' TO MESSAGE+26.
 ENDIF.
 PERFORM FUELLE_INFO USING MESSAGE.
 MOVE 'n    print immediately    ' TO MESSAGE.
 MOVE SOFORT TO MESSAGE+26.
 PERFORM FUELLE_INFO USING MESSAGE.
 CLEAR INFOTAB.
 * Aufbau des Titels für Spoolauftrag
 MOVE 'SAP AG Walldorf printertest' TO COVERTEXT.
 MOVE AGERAET TO COVERTEXT+31.
 MOVE SY-UNAME TO COVERTEXT+38.
 * Aufbau Empfänger und Abteilung für Spoolauftrag
 MOVE SY-UNAME(12) TO EMPFAENGER.
 SELECT * FROM USR03 WHERE
 BNAME = SY-UNAME.
 IF SY-SUBRC EQ 0.
 MOVE USR03-ABTLG TO ABTEILUNG.
 ENDIF.
 ENDSELECT.
 * Prüfung, ob Ausgabegerät vorhanden ist
 CLEAR TSP03.
 SELECT SINGLE * FROM TSP03
 WHERE PADEST EQ AGERAET.
 IF SY-SUBRC NE 0.
 MOVE 'ioutput device' TO MESSAGE.
 MOVE AGERAET TO MESSAGE+22.
 MOVE 'not defined in system' TO MESSAGE+27.
 MOVE SY-SYSID TO MESSAGE+67.
 CONDENSE MESSAGE.
 *  perform fuelle_info using message.
 ERROR = 1.
 ELSE.
 MOVE 'ntest output device' TO MESSAGE.
 MOVE AGERAET TO MESSAGE+26.
 MOVE '( type' TO MESSAGE+31.
 MOVE TSP03-PATYPE TO MESSAGE+47.
 MOVE ') in system' TO MESSAGE+57.
 MOVE SY-SYSID TO MESSAGE+69.
 CONDENSE MESSAGE.
 *  perform fuelle_info using message.
 AGTYPE = TSP03-PATYPE.
 ENDIF.
 IF ERROR = 0.                          "Ausgabegerät ist vorhanden
 * Fuellen der Testzeichentabelle
 DO 5 TIMES.
 PERFORM FUELL_TAB USING ' '.
 ENDDO.
 PERFORM FUELL_TAB USING
 '---- SSSSSSSSS ---------- AA -------- PPPPPPPPPP --- -----------------'
 .
 PERFORM FUELL_TAB USING
 '-- SSSSSSSSSSSSS ------- AAAA ------- PPPPPPPPPPP -- ---------------'.
 PERFORM FUELL_TAB USING
 '-- SSSSSS -- SS ------- AAAAAA ------ PPPP -- PPPP - -------------'.
 PERFORM FUELL_TAB USING
 '--- SSSSSSS ---------- AAA  AAA ----- PPPP -- PPPP - -----------'.
 PERFORM FUELL_TAB USING
 '----- SSSSSSS ------- AAAAAAAAAA ---- PPPPPPPPPPP -- ---------'.
 PERFORM FUELL_TAB USING
 '------- SSSSSSS ---- AAAAAAAAAAAA --- PPPPPPPPPP --- -------'.
 PERFORM FUELL_TAB USING
 '-- SS --- SSSSSS -- AAAA ---- AAAA -- PPPP --------- -----'.
 PERFORM FUELL_TAB USING
 '- SSSSSSSSSSSSSS - AAAA ------ AAAA - PPPP --------- ---'.
 PERFORM FUELL_TAB USING
 '--- SSSSSSSSSS --- AAAA ------ AAAA - PPPP --------- -'.
 DO 5 TIMES.
 PERFORM FUELL_TAB USING ' '.
 ENDDO.
 PERFORM FUELL_TAB USING ' '.
 PERFORM FUELL_TAB USING ' '.
 PERFORM FUELL_TAB USING ' '.
 PERFORM FUELL_TAB USING '      AaBbCc .. XxYyZz .. 1234567890'.
 PERFORM FUELL_TAB USING '      [] ..... () ..... {} ..... <>'.
 PERFORM FUELL_TAB USING '      AE Ää .. OE Öö .. UE Üü .. sz ß'.
 PERFORM FUELL_TAB USING '      pipe |  slash  /  backslash \'.
 DO 60 TIMES.
 PERFORM FUELL_TAB USING ' '.
 ENDDO.
 PERFORM BILDE_LISTNAME.
 PERFORM AUSGABE.
 ENDIF.
 * Ausgabe der Runtime- Infos
 PERFORM FUELLE_INFO USING 'ie n d   of   p r i n t e r t e s t'.
 LOOP AT INFOTAB.
 IF INFOTAB-INFO(1) EQ 'i'.
 FORMAT INTENSIFIED.
 ELSE.
 FORMAT INTENSIFIED OFF.
 ENDIF.
 WRITE : / INFOTAB-INFO+1.
 ENDLOOP.
 *---------------------------------------------------------------------*
 *       FORM FUELL_TAB                                                *
 *---------------------------------------------------------------------*
 *       Füllen der Liste (interne Tabelle)                            *
 *---------------------------------------------------------------------*
 *  -->  ZEICHEN                                                       *
 *---------------------------------------------------------------------*
 FORM FUELL_TAB USING ZEICHEN.
 MOVE ZEICHEN TO TESTZEICHEN-TESTZ.
 APPEND TESTZEICHEN.
 ENDFORM.
 *---------------------------------------------------------------------*
 *       FORM FUELLE_INFO                                              *
 *---------------------------------------------------------------------*
 *       Füllen der Info- Tabelle                                      *
 *---------------------------------------------------------------------*
 *  -->  INFO                                                          *
 *---------------------------------------------------------------------*
 FORM FUELLE_INFO USING INFO.
 MOVE INFO TO INFOTAB-INFO.
 APPEND INFOTAB.
 ENDFORM.
 *---------------------------------------------------------------------*
 *       FORM BILDE_LISTNAME                                           *
 *---------------------------------------------------------------------*
 *       Zusammenbauen des Listnamens                                  *
 *---------------------------------------------------------------------*
 FORM BILDE_LISTNAME.
 MOVE SY-UNAME(3) TO VLNAME(3).
 MOVE '_' TO VLNAME+3(1).
 MOVE HOCH(2) TO VLNAME+4(2).
 MOVE '_' TO VLNAME+6(1).
 MOVE BREIT(3) TO VLNAME+7(3).
 ENDFORM.
 *---------------------------------------------------------------------*
 *       FORM CHECK_AUFBEREITUNG                                       *
 *---------------------------------------------------------------------*
 *       Test, ob Aufbereitungsart vorhanden ist                       *
 *---------------------------------------------------------------------*
 FORM CHECK_AUFBEREITUNG.
 CLEAR TSP06.
 SELECT * FROM TSP06
 WHERE PDPTYPE EQ AGTYPE AND PDPAPER EQ AUFBER.
 ENDSELECT.
 IF SY-SUBRC NE 0.
 MOVE 'ioutput format' TO MESSAGE.
 MOVE AUFBER TO MESSAGE+18.
 MOVE 'NOT available.' TO MESSAGE+38.
 CONDENSE MESSAGE.
 PERFORM FUELLE_INFO USING MESSAGE.
 ERROR = 1.
 ELSE.
 MOVE 'noutput format' TO MESSAGE.
 MOVE AUFBER TO MESSAGE+18.
 MOVE 'available.' TO MESSAGE+38.
 CONDENSE MESSAGE.
 PERFORM FUELLE_INFO USING MESSAGE.
 ERROR = 0.
 EXIT.
 ENDIF.
 ENDFORM.
 *---------------------------------------------------------------------*
 *       FORM AUSGABE                                                  *
 *---------------------------------------------------------------------*
 *       Ausgabe einer Liste                                           *
 *---------------------------------------------------------------------*
 FORM AUSGABE.
 DO STRESS TIMES.
 MOVE BREIT TO SY-LINSZ.
 * Erzeugen einzelner List- Typen gemäß Selektionsbild
 NEW-PAGE PRINT ON
 DESTINATION AGERAET
 COVER TEXT COVERTEXT
 SAP COVER PAGE ' '
 IMMEDIATELY SOFORT
 KEEP IN SPOOL ' '
 NEW LIST IDENTIFICATION 'X'
 DATASET EXPIRATION 1
 LINE-COUNT HOCH
 LINE-SIZE BREIT
 LAYOUT AUFBER
 RECEIVER EMPFAENGER
 DEPARTMENT ABTEILUNG
 NO DIALOG.
 SY-PAGNO = 1.
 FORMAT INTENSIFIED OFF.
 DO SEITEN TIMES.                   "Seitenschleife
 ZYKLAKT = SY-INDEX.
 DO BREIT TIMES.                  "Punktzeile über Breite
 POSITION SY-INDEX.
 WRITE : '.'.
 ENDDO.
 POSI = 8.
 SPALTI = 10.
 DO.                              "Eintragen der Zehnerspalten
 POSITION POSI.
 WRITE SPALTI.
 POSI = POSI + 11.
 IF BREIT LE POSI.
 EXIT.
 ENDIF.
 POSI = POSI - 1.
 SPALTI = SPALTI + 10.
 ENDDO.
 ZYKLEN = HOCH - 3.
 DO ZYKLEN TIMES.                 "Zeilenschleife
 ZEILENZAEHLER = SY-INDEX + 3.
 WRITE : / 'line', ZEILENZAEHLER.
 IF ZYKLAKT EQ 1.
 * Erzeugen SAP- Logo und Zeichenübersicht wenn 1. Seite
 READ TABLE TESTZEICHEN INDEX ZEILENZAEHLER.
 IF SY-SUBRC = 0.
 IF TESTZEICHEN-TESTZ(1) = '-'.
 FORMAT INTENSIFIED.
 WRITE :  10  TESTZEICHEN-TESTZ.
 FORMAT INTENSIFIED OFF.
 ELSE.
 IF ZYKLAKT = 1.
 CASE ZEILENZAEHLER.
 WHEN 22.
 WRITE : 12 '     Color     '
 COLOR COL_BACKGROUND.
 WRITE : 28 '  Intensified  '
 COLOR COL_BACKGROUND.
 WRITE : 44 'Intensified Off'
 COLOR COL_BACKGROUND.
 WRITE : 60 '    Inverse    '
 COLOR COL_BACKGROUND.
 WHEN 23.
 WRITE : 12 'COL_BACKGROUND '
 COLOR COL_BACKGROUND.
 WRITE : 28 '  0123456789   '
 COLOR COL_BACKGROUND INTENSIFIED.
 WRITE : 44 '  0123456789   '
 COLOR COL_BACKGROUND INTENSIFIED OFF.
 WRITE : 60 '  0123456789   '
 COLOR COL_BACKGROUND INVERSE.
 WHEN 24.
 WRITE : 12 'COL_HEADING    '
 COLOR COL_HEADING.
 WRITE : 28 '  0123456789   '
 COLOR COL_HEADING INTENSIFIED.
 WRITE : 44 '  0123456789   '
 COLOR COL_HEADING INTENSIFIED OFF.
 WRITE : 60 '  0123456789   '
 COLOR COL_HEADING INVERSE.
 WHEN 25.
 WRITE : 12 'COL_NORMAL     '
 COLOR COL_NORMAL.
 WRITE : 28 '  0123456789   '
 COLOR COL_NORMAL INTENSIFIED.
 WRITE : 44 '  0123456789   '
 COLOR COL_NORMAL INTENSIFIED OFF.
 WRITE : 60 '  0123456789   '
 COLOR COL_NORMAL INVERSE.
 WHEN 26.
 WRITE : 12 'COL_TOTAL      '
 COLOR COL_TOTAL.
 WRITE : 28 '  0123456789   '
 COLOR COL_TOTAL INTENSIFIED.
 WRITE : 44 '  0123456789   '
 COLOR COL_TOTAL INTENSIFIED OFF.
 WRITE : 60 '  0123456789   '
 COLOR COL_TOTAL INVERSE.
 WHEN 27.
 WRITE : 12 'COL_KEY        '
 COLOR COL_KEY.
 WRITE : 28 '  0123456789   '
 COLOR COL_KEY INTENSIFIED.
 WRITE : 44 '  0123456789   '
 COLOR COL_KEY INTENSIFIED OFF.
 WRITE : 60 '  0123456789   '
 COLOR COL_KEY INVERSE.
 WHEN 28.
 WRITE : 12 'COL_POSITIVE   '
 COLOR COL_POSITIVE.
 WRITE : 28 '  0123456789   '
 COLOR COL_POSITIVE INTENSIFIED.
 WRITE : 44 '  0123456789   '
 COLOR COL_POSITIVE INTENSIFIED OFF.
 WRITE : 60 '  0123456789   '
 COLOR COL_POSITIVE INVERSE.
 WHEN 29.
 WRITE : 12 'COL_NEGATIVE   '
 COLOR COL_NEGATIVE.
 WRITE : 28 '  0123456789   '
 COLOR COL_NEGATIVE INTENSIFIED.
 WRITE : 44 '  0123456789   '
 COLOR COL_NEGATIVE INTENSIFIED OFF.
 WRITE : 60 '  0123456789   '
 COLOR COL_NEGATIVE INVERSE.
 WHEN 30.
 WRITE : 12 'COL_GROUP      '
 COLOR COL_GROUP.
 WRITE : 28 '  0123456789   '
 COLOR COL_GROUP INTENSIFIED.
 WRITE : 44 '  0123456789   '
 COLOR COL_GROUP INTENSIFIED OFF.
 WRITE : 60 '  0123456789   '
 COLOR COL_GROUP INVERSE.
 WHEN BARCODE.
 WRITE : 12
 '  Printertest SAP AG Walldorf.',
 'In case of problems please call  '.
 WHEN HOCH.
 WRITE : 30 '+49 6227 7 41610'.
 WHEN OTHERS.
 WRITE :  15  TESTZEICHEN-TESTZ.
 ENDCASE.
 ELSE.
 WRITE :  15  TESTZEICHEN-TESTZ.
 ENDIF.
 ENDIF.
 ENDIF.
 IF ZEILENZAEHLER EQ 16.
 GET TIME.
 WRITE : 26 SY-DATUM, '  ', SY-UZEIT.
 ENDIF.
 IF ZEILENZAEHLER EQ 18.
 WRITE : 26 'R/3 system    :', SY-SYSID.
 ENDIF.
 IF ZEILENZAEHLER EQ 19.
 WRITE : 26 'printername   :', AGERAET.
 ENDIF.
 IF ZEILENZAEHLER EQ 20.
 WRITE : 26 'printertype   :', AGTYPE.
 ENDIF.
 IF ZEILENZAEHLER EQ 21.
 WRITE : 26 'output format :', AUFBER.
 ENDIF.
 ELSE.
 * Behandlung der Folgeseiten
 IF ZEILENZAEHLER+1(1) EQ 0 OR ZEILENZAEHLER EQ HOCH.
 DO BREIT TIMES.
 POSITION SY-INDEX.
 WRITE : '-'.
 ENDDO.
 ENDIF.
 IF ZEILENZAEHLER EQ HOCH.
 DO BREIT TIMES.
 POSITION SY-INDEX.
 WRITE : '+'.
 ENDDO.
 ENDIF.
 ENDIF.
 * Behandlung aller Seiten
 IF ZEILENZAEHLER LT HOCH.
 IF SY-PAGNO GT 1.
 IF ZEILENZAEHLER EQ 13.
 GET TIME.
 WRITE : 30 SY-DATUM, '  ', SY-UZEIT.
 ENDIF.
 IF ZEILENZAEHLER EQ 15.
 WRITE : 30 'R/3 system   ', SY-SYSID.
 ENDIF.
 IF ZEILENZAEHLER EQ 16.
 WRITE : 30 'printername  ', AGERAET.
 ENDIF.
 IF ZEILENZAEHLER EQ 17.
 WRITE : 30 'printertype  ', AGTYPE.
 ENDIF.
 IF ZEILENZAEHLER EQ 18.
 WRITE : 30 'output format', AUFBER.
 ENDIF.
 ENDIF.
 IF ZYKLAKT NE 1.             "Nur für 1. Seite
 POSI = 10.
 DO.                        "Eintragen der Spaltenzeichen
 POSITION POSI.
 IF ZEILENZAEHLER GE 12 AND ZEILENZAEHLER LE 18.
 IF POSI NE 30 AND
 POSI NE 40 AND
 POSI NE 50.
 WRITE '!'.
 ENDIF.
 ELSE.
 WRITE '!'.
 ENDIF.
 POSI = POSI + 10.
 IF POSI GT 80.
 EXIT.
 ENDIF.
 ENDDO.
 ENDIF.
 POSI = 90.
 DO.                          "Eintragen der Zehnerspalten
 IF BREIT LE POSI.
 EXIT.
 ENDIF.
 POSITION POSI.
 WRITE '!'.
 POSI = POSI + 10.
 ENDDO.
 ENDIF.
 POSITION BREIT.
 WRITE : '+'.
 ENDDO.
 IF SY-INDEX NE SEITEN.
 NEW-PAGE.
 ENDIF.
 ENDDO.
 NEW-PAGE PRINT OFF.
 ADD 1 TO COMM_CNT.
 IF COMM_CNT EQ COMM_X.
 COMMIT WORK.
 COMM_CNT = 0.
 ENDIF.
 ENDDO.
 ENDFORM.
 | 
 |