Nachfolgend sehen Sie ein PrintEasy-Beispiel-COBOL-Programm.

Dieses Programm erstellt eine Artikel-Umsatzliste mit folgendem Ergebnis:

>> Hier klicken, um den Ausdruck zu betrachten. <<



Ablauf des Beispiel-Programms
Drucker, Papieraufteilung, Objekte und Schriftarten werden definiert und am Beginn der Anwendung initialisiert.

Nach dem Öffnen des Dokumentes erscheint der Druckerauswahl-Dialog und die Texte können plaziert werden.

Nach dem Schließen des Dokumentes erfolgt der Ausdruck der Liste.
Die Seiten werden dabei automatisch umgebrochen.

ENVIRONMENT-DIVISION & FILE-SECTION
      ******************************************************************
       IDENTIFICATION DIVISION.
      ******************************************************************
       PROGRAM-ID. ARTP7.


      ******************************************************************
       ENVIRONMENT DIVISION.
      ******************************************************************

       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT E-ARTIKELDATEI   ASSIGN TO "ARTIKEL.DAT"
                                   ORGANIZATION IS LINE SEQUENTIAL
                                   FILE STATUS IS FILE-STATUS.


      ******************************************************************
       DATA DIVISION.
      ******************************************************************

       FILE SECTION.

       FD E-ARTIKELDATEI.

           COPY "ARTIKEL.CPY".
		 
WORKING-STORAGE - Definition der Eingabe-Datei
       WORKING-STORAGE SECTION.

           COPY "FILESTAT.CPY".

      ******************************************************************
      *                   EINGABE-ARTIKELDATEI                         *
      ******************************************************************
       01  E-ARTIKELSATZ-1.
           05  E-ARTNR-1.
               10  E-ARTGRP-1               PIC X(003).
               10  E-ARTLFDNR-1             PIC X(003).
           05  E-ARTGRP-BEZ-1               PIC X(20).
           05  E-ARTGRP-BILD-1              PIC X(50).
           05  E-ARTBEZ-1                   PIC X(020).
           05  E-GROESSEN-TABELLE-1  OCCURS 3
                                     INDEXED BY IND-1.
               10  E-GROESSE-1              PIC X(3).
               10  E-PREIS-DM-1             PIC 9(004)V99.
               10  E-PREIS-EURO-1           PIC 9(004)V99.
               10  E-MENGE-1                PIC 9(003).
               10  E-KOSTEN-1               PIC 9(003)V99.
           05  E-FARB-TABELLE        OCCURS 3.
               10  E-FARBE-1                PIC X(15).
               10  E-ORDER-NR-1             PIC X(007).
           05  E-VWKOST-1                   PIC 9(002)V9.
           05  E-VTPROV-1                   PIC 9(002)V9.
           05  FILLER                       PIC X(033).
		 
WORKING-STORAGE - Definition der Ausgabe-Strukturen
Festlegung der einzelnen Objekte, die für Kopf-, Fußzeile, Wasserzeichen und Stempel verwendet werden sollen.
      ******************************************************************
      *                   DRUCK-AUSGABESTRUKTUREN
      ******************************************************************

       EXEC PRINT

       01  TEXT P-WASSERZEICHEN
               VALUE "Physisches Wasserzeichen"
               FONT IS FONT-UEBER-1
                   SIZE IS 30 POINTS
                   TEXT-COLOR IS YELLOW
               ROTATION IS 45 DEGREE.

       01  TEXT P-STEMPEL
               VALUE "J"
               FONT IS FONT-STEMPEL
                   SIZE IS 150.

       01  TEXT P-KOPFZEILE
               VALUE "Physische Kopfzeile"
               FONT IS FONT-UEBER-1.

       01  TEXT P-FUSSZEILE
               VALUE "Physische Fusszeile"
               FONT IS FONT-UEBER-1.

       01  TEXT L-WASSERZEICHEN
               VALUE "Logisches Wasserzeichen"
               FONT IS FONT-UEBER-1
                   TEXT-COLOR IS YELLOW
               ROTATION IS 45 DEGREE.

       01  TEXT L-STEMPEL
               VALUE "C"
               FONT IS FONT-STEMPEL.

       01  TEXT L-KOPFZEILE
               VALUE "Logische Kopfzeile"
               FONT IS FONT-KOPF-2.

       01  TEXT L-FUSSZEILE
               VALUE "Logische Fusszeile"
               FONT IS FONT-KOPF-2.

			   
           DEFINE GROUP G-P-KOPFZEILE.
               USE REFERENCE P-KOPFZEILE
           END-DEFINE

           DEFINE GROUP G-P-FUSSZEILE.
               USE REFERENCE P-FUSSZEILE
           END-DEFINE

           DEFINE GROUP G-P-WASSERZEICHEN.
               USE REFERENCE P-WASSERZEICHEN
           END-DEFINE

           DEFINE GROUP G-P-STEMPEL.
               USE REFERENCE P-STEMPEL
           END-DEFINE

           DEFINE GROUP G-L-KOPFZEILE.
               USE REFERENCE L-KOPFZEILE
           END-DEFINE

           DEFINE GROUP G-L-FUSSZEILE.
               USE REFERENCE L-FUSSZEILE
           END-DEFINE

           DEFINE GROUP G-L-WASSERZEICHEN.
               USE REFERENCE L-WASSERZEICHEN
           END-DEFINE

           DEFINE GROUP G-L-STEMPEL.
               USE REFERENCE L-STEMPEL
           END-DEFINE
		 
WORKING-STORAGE - Definition der Strukturen für die Druckzeilen
Definition einzelnder Strukturen, die später als Druckzeilen dienen.
       01  TEXT DECKBLATT
               VALUE "Artikel-Umsatzliste"
               ABSOLUTE VERTICAL POSITION IS 3 LINES
               HORIZONTAL POSITION IS CENTERED
               FONT IS FONT-UEBER-1
                   SIZE IS 16 POINTS.

       01  A-UEBERSCHRIFT-1                PIC X(23)
               VALUE "Umsatz und Rentabilit„t"
               HORIZONTAL POSITION IS CENTERED
               WIDTH IS REQUIRED PHYSICAL-SIZE
               FONT IS FONT-UEBER-1.

       01  A-ARTIKEL-KOPFZEILE
               TEXT-DEFAULTS ARE
                   FONT IS FONT-KOPF-1.
           05  FILLER                       PIC X(008)
                                            VALUE "Art-Nr.".
           05  A-ARTNR-1                    PIC X(006).
           05  FILLER                       PIC X(001) VALUE SPACE.
           05  A-ARTBEZ-1                   PIC X(020).

       01  A-EINZELUMSATZ-KOPFZEILE
               TEXT-DEFAULTS ARE
                   FONT IS FONT-NORMAL.
           05  FILLER                       PIC X(006)
                                            VALUE "GrӇe".
           05  FILLER                       PIC X(003)     VALUE SPACE.
           05  FILLER                       PIC X(006)
                                            VALUE "Umsatz"
                               CONTENTS-ALIGNMENT IS RIGHT.
           05  FILLER                       PIC X(005)     VALUE SPACE.
           05  FILLER                       PIC X(006)
                                            VALUE "Gewinn"
                               CONTENTS-ALIGNMENT IS RIGHT.
           05  FILLER                       PIC X(005)     VALUE SPACE.
           05  FILLER                       PIC X(012)
                                            VALUE "Rentabilit„t"
                               WIDTH IS REQUIRED PHYSICAL-SIZE.

       01  A-ARTIKELSATZ-1.
           05  A-GROESSE-1                  PIC X(003).
           05  FILLER                       PIC X(2)       VALUE SPACE.
           05  A-UMSATZ-1                   PIC Z(6)9,99.
           05  FILLER                       PIC X(1)       VALUE SPACE.
           05  A-GEWINN-1                   PIC Z(6)9,99.
           05  FILLER                       PIC X(1)       VALUE SPACE.
           05  FILLER                       PIC X(4)       VALUE SPACE.
           05  A-RENTAB-1                   PIC Z9,99
                               CONTENTS-ALIGNMENT IS LEFT.
           05  FILLER                       PIC X(044)     VALUE SPACE.

       END-EXEC
		 
WORKING-STORAGE - Definition der PrintEasy-Ressourcen
Definition der gewünschten Ressourcen, wie Schriften, Farben, Linien....
       EXEC PRINT DEFINE SECTION.

           DEFINE FONT    FONT-NORMAL  USING FONTNAME "ARIAL"
                                       SIZE IS 7 POINTS
                                       TEXT-COLOR IS BLACK
                                       BACKGROUND-COLOR IS TRANSPARENT.

           DEFINE FONT    FONT-UEBER-1 USING FONTNAME      "ARIAL"
                                       SIZE             IS 10 POINTS
                                       TEXT-COLOR       IS BLACK
                                       BACKGROUND-COLOR IS TRANSPARENT
                                       LETTER-SPACING   IS EXPANDED
                                       BOLD             IS ON.

           DEFINE FONT    FONT-KOPF-1  USING FONTNAME      "ARIAL"
                                       SIZE             IS 8 POINTS
                                       TEXT-COLOR       IS BLACK
                                       BACKGROUND-COLOR IS TRANSPARENT
                                       BOLD             IS ON
                                       UNDERLINE        IS ON.

           DEFINE FONT    FONT-KOPF-2  USING FONTNAME      "ARIAL"
                                       SIZE             IS 7 POINTS
                                       TEXT-COLOR       IS BLACK
                                       BACKGROUND-COLOR IS TRANSPARENT
                                       BOLD             IS ON.

           DEFINE FONT    FONT-STEMPEL USING FONTNAME      "WINGDINGS"
                                       SIZE             IS 100 POINTS
                                       TEXT-COLOR       IS RED
                                       BACKGROUND-COLOR IS TRANSPARENT.

           DEFINE LINETYPE LINIE-DUENN WITH
                                       WIDTH            IS THIN
                                       STYLE            IS SOLID
                                       TYPE             IS SINGLE
                                       COLOR            IS BLACK.

           DEFINE LINETYPE LINIE-STRPKT WITH
                                       WIDTH            IS THIN
                                       STYLE            IS DASHDOT
                                       TYPE             IS SINGLE
                                       COLOR            IS BLACK.
           DEFINE FILLTYPE LGRAY  with style is solid
                                       foreground-color is gray50.

       END-EXEC
		 
WORKING-STORAGE - Festlegung der programmweiten Standards
Festlegen der Defaults z.B. für die Schrift.
       EXEC PRINT DEFAULT SECTION.

           DEFAULT FONT IS FONT-NORMAL

           DEFAULT TOM-CHARACTER IS "A"
                                 USING FONT-NORMAL.
       END-EXEC
		 
WORKING-STORAGE - Definition des Dokumentes
Festlegung der Dokumentenstandards, Geräteoptionen, physischen und logischen Seiten
       EXEC PRINT DOCUMENT SECTION.

           DEFINE DOCUMENT DOC-UMSATZLISTE.

               DOCUMENT DEFAULTS.
                 DEFAULT UNIT          IS TOM.

               DEVICE DESCRIPTION.
                   PRINTER     IS  PRINTER-DIALOG.

               PHYSICAL PAGE DESCRIPTION.
                   PAPER       IS  A4
                   ORIENTATION IS  PORTRAIT
                   MARGIN LEFT           IS 20 MM
                   MARGIN RIGHT          IS 20 MM
                   MARGIN TOP            IS 25 MM
                   MARGIN BOTTOM         IS 25 MM
                   WATERMARK
                       HORIZONTAL POSITION IS CENTERED
                       VERTICAL POSITION   IS CENTERED
                       USING G-P-WASSERZEICHEN
                   STAMP
                       HORIZONTAL POSITION IS CENTERED
                       VERTICAL POSITION   IS CENTERED
                       USING G-P-STEMPEL
                   HEADER
                       HORIZONTAL POSITION IS CENTERED
                       STARTS 15 MM
                       USING G-P-KOPFZEILE
                   FOOTER
                       HORIZONTAL POSITION IS CENTERED
                       STARTS 15 MM
                       USING G-P-FUSSZEILE
                   PHYSICAL PAGE IS TILED
                       HORIZONTALLY 2
                           WITH GUTTER 10 MM
                           GUTTER-LINE IS ON USING LINETYPE LINIE-STRPKT
                       VERTICALLY   2
                           WITH GUTTER 10 MM
                          GUTTER-LINE IS ON USING LINETYPE LINIE-STRPKT.

               LOGICAL PAGE DESCRIPTION.

                 FIRST PAGE.
                   BORDER IS ON USING LINETYPE LINIE-DUENN
                   MARGIN LEFT           IS 5 MM
                   MARGIN RIGHT          IS 5 MM
                   MARGIN TOP            IS 5 MM
                   MARGIN BOTTOM         IS 5 MM
                   SHADOW IS on USING filltype lgray.


                 OTHER PAGE.
                   BORDER IS ON USING LINETYPE LINIE-DUENN
                   MARGIN LEFT           IS 5 MM
                   MARGIN RIGHT          IS 5 MM
                   MARGIN TOP            IS 5 MM
                   MARGIN BOTTOM         IS 5 MM
                   SHADOW IS on USING filltype lgray
                   WATERMARK
                       HORIZONTAL POSITION IS CENTERED
                       VERTICAL POSITION   IS CENTERED
                       USING G-L-WASSERZEICHEN
                   STAMP
                       HORIZONTAL POSITION IS CENTERED
                       VERTICAL POSITION   IS CENTERED
                       USING G-L-STEMPEL
                   HEADER
                       HORIZONTAL POSITION IS CENTERED
                       USING G-L-KOPFZEILE
                   FOOTER
                       HORIZONTAL POSITION IS CENTERED
                       USING G-L-FUSSZEILE.
       END-EXEC
		 
WORKING-STORAGE - Sonstige Bereiche
Rechen- und Hilfsfelder
      ******************************************************************
      *
      ******************************************************************
       01  RECHENFELDER.
           05  Z-UMSATZ-1                   PIC S9(007)V99
                                            BINARY VALUE ZERO.
           05  Z-GEWINN-1                   PIC S9(007)V99
                                            BINARY VALUE ZERO.

       01  PE-MESSAGE                       PIC X(100) VALUE SPACE.
       01  PE-MESSAGE-LAENGE                PIC 9(09)  VALUE ZERO.
       01  PE-HEADING                       PIC X(40)  VALUE SPACE.
       01  PE-HEADING-LAENGE                PIC 9(09)  VALUE ZERO.
       01  PE-MBOX-TYP                      PIC 9(09)  VALUE ZERO.
       01  PE-MBOX-RC                       PIC 9(09)  VALUE ZERO.
       01  PE-WARNING-ZAEHLER               PIC 9(09)  VALUE ZERO.

      ******************************************************************
      * PRINTEASY DEFINITIONEN
      ******************************************************************
		 
WORKING-STORAGE - Sonstige Bereiche
PrintEasy-Copystrecken
       COPY "PE-CA.CPY".
       COPY "PEMBOX.CPY".
       COPY "PEDOCINF.CPY".
		 
PROCEDURE DIVISION
Steuerungslogik
      ******************************************************************
       PROCEDURE DIVISION.
      ******************************************************************

      ******************************************************************
       STEUERUNG SECTION.
      ******************************************************************
       STEUERUNG-ST.

           PERFORM VORLAUF
           PERFORM ARTIKEL-LESEN
           PERFORM WITH TEST BEFORE
                   UNTIL DATEI-ENDE
               PERFORM ARTIKEL-KOPFZEILE
               PERFORM WITH TEST AFTER
                       VARYING IND-1
                       FROM 1  BY 1
                       UNTIL IND-1 = 3
                   PERFORM RENT-BERECHNEN
                   PERFORM UEBERTRAGEN
                   PERFORM ART-RENT-AUSGEBEN
               END-PERFORM
               PERFORM ARTIKEL-LESEN

           END-PERFORM

           PERFORM NACHLAUF
           .

       STEUERUNG-EX.

           STOP RUN.
		 
PROCEDURE DIVISION - Vorlauf
Eingabe-Datei eröffnen
      ******************************************************************
       VORLAUF SECTION.
      ******************************************************************
       VORLAUF-ST.

           OPEN INPUT E-ARTIKELDATEI
		 
PROCEDURE DIVISION - Vorlauf
Ausnahme- und Fehlerbehandlung einstellen
           EXEC PRINT
               WHENEVER PE-INFO    WRITE LOGFILE
           END-EXEC

           EXEC PRINT
               WHENEVER PE-WARNING PERFORM WARNING-ROUTINE
                                   AND WRITE LOGFILE
           END-EXEC

           EXEC PRINT
               WHENEVER PE-ERROR   PERFORM ERROR-ROUTINE
                                   AND WRITE LOGFILE
           END-EXEC

           MOVE ZERO TO PE-WARNING-ZAEHLER
		 
PROCEDURE DIVISION - Vorlauf
Ressourcen initialisieren
           EXEC PRINT
               INITIALIZE RESOURCES
           END-EXEC
		 
PROCEDURE DIVISION - Vorlauf
Dokument öffnen und Deckblatt ausgeben
           EXEC PRINT
               OPEN DOCUMENT DOC-UMSATZLISTE
                   PREVIEW IS ON  MODE IS DIRECT
                   PRINTING IS OFF
                   PREVIEW-SIZE  IS MAXIMIZED
                   DOCUMENT-SIZE IS MAXIMIZED
           END-EXEC

           EXEC PRINT
               PLACE DECKBLATT UPON DOCUMENT DOC-UMSATZLISTE
           END-EXEC

           .
       VORLAUF-EX.
           EXIT.
		 
PROCEDURE DIVISION - Artikeldatei lesen
      ******************************************************************
       ARTIKEL-LESEN SECTION.
      ******************************************************************
       ARTIKEL-LESEN-ST.

           MOVE SPACES TO ARTIKELSATZ-1

           READ        E-ARTIKELDATEI   INTO E-ARTIKELSATZ-1
               AT END CONTINUE
           END-READ

           .
       ARTIKEL-LESEN-EX.
           EXIT.
		 
PROCEDURE DIVISION - Gruppenwechsel - Artikelkopf ausgeben
Nach Seiten- oder Gruppenwechsel neuen Artikelkopf ausgeben
      ******************************************************************
       ARTIKEL-KOPFZEILE SECTION.
      ******************************************************************
       ARTIKEL-KOPFZEILE-ST.

       EXEC PRINT
           NEXT LOGICAL PAGE OF DOC-UMSATZLISTE
       END-EXEC

       EXEC PRINT
           PLACE A-UEBERSCHRIFT-1 UPON DOCUMENT DOC-UMSATZLISTE
       END-EXEC

           MOVE          E-ARTNR-1      TO     A-ARTNR-1
           MOVE          E-ARTBEZ-1     TO     A-ARTBEZ-1
       EXEC PRINT
           PLACE A-ARTIKEL-KOPFZEILE UPON DOCUMENT DOC-UMSATZLISTE
                                     AFTER 1 LINES
       END-EXEC

       EXEC PRINT
           PLACE A-EINZELUMSATZ-KOPFZEILE UPON DOCUMENT DOC-UMSATZLISTE
                                      AFTER  2 LINES
       END-EXEC

           .
       ARTIKEL-KOPFZEILE-EX.
           EXIT.
		 
PROCEDURE DIVISION - Übertragungs- und Berechnungsteile
      ******************************************************************
       UEBERTRAGEN SECTION.
      ******************************************************************
       UEBERTRAGEN-ST.

           MOVE          E-GROESSE-1(IND-1) TO A-GROESSE-1

           .
       UEBERTRAGE-EX.
           EXIT.

      ******************************************************************
       RENT-BERECHNEN SECTION.
      ******************************************************************
       RENT-BERECHNEN-ST.

           MULTIPLY    E-PREIS-DM-1(IND-1) BY     E-MENGE-1(IND-1)
                                           GIVING A-UMSATZ-1
                                                  Z-UMSATZ-1
      *
           COMPUTE       A-GEWINN-1 ROUNDED
                         Z-GEWINN-1 ROUNDED
                          = Z-UMSATZ-1
                            - E-KOSTEN-1(IND-1) * E-MENGE-1(IND-1)
                            - ( E-VWKOST-1 * E-KOSTEN-1(IND-1)
                                   * E-MENGE-1(IND-1) / 100 )
                            - ( E-VTPROV-1 * E-PREIS-DM-1(IND-1)
                                   * E-MENGE-1(IND-1) / 100 )
      *
           COMPUTE       A-RENTAB-1 ROUNDED
                          = Z-GEWINN-1 * 100 / Z-UMSATZ-1

           .
       RENT-BERECHNEN-EX.
           EXIT.
		 
PROCEDURE DIVISION - Rentabilität drucken
      ******************************************************************
       ART-RENT-AUSGEBEN SECTION.
      ******************************************************************
       ART-RENT-AUSGEBEN-ST.

           EXEC PRINT
               PLACE A-ARTIKELSATZ-1 UPON DOCUMENT DOC-UMSATZLISTE
                                     AFTER ADVANCING 1 LINES
           END-EXEC

           .
       ART-RENT-AUSGEBEN-EX.
           EXIT.
		 
PROCEDURE DIVISION - Nachlauf
Eingabe-Datei schließen
      ******************************************************************
       NACHLAUF SECTION.
      ******************************************************************
       NACHLAUF-ST.

           CLOSE E-ARTIKELDATEI
		 
PROCEDURE DIVISION - Nachlauf
Dokument schließen und drucken
           EXEC PRINT
               CLOSE DOCUMENT DOC-UMSATZLISTE
           END-EXEC

           IF PE-WARNING-ZAEHLER > ZERO
              THEN
                PERFORM WARNING-HINWEIS
              ELSE
                CONTINUE
           END-IF

           .
       NACHLAUF-EX.
           EXIT.
		 
PROCEDURE DIVISION - Fehler- & Warnungsroutinen
Behandlung von Warnungen
      ******************************************************************
       WARNING-ROUTINE SECTION.
      ******************************************************************
       WARNING-ROUTINE-ST.

           IF PE-CODE = 8045
              THEN
                CONTINUE
              ELSE
                ADD 1                       TO PE-WARNING-ZAEHLER
           END-IF

           .
       WARNING-ROUTINE-EX.
           EXIT.


      ******************************************************************
       WARNING-HINWEIS SECTION.
      ******************************************************************
       WARNING-HINWEIS-ST.

           MOVE "PRINTEASY BEISPIEL"   TO PE-HEADING
           MOVE "ES SIND WARNINGS AUFGETRETEN! SIEHE PRNEASY.LOG!"
                                       TO PE-MESSAGE
           MOVE 100                    TO PE-MESSAGE-LAENGE
           MOVE 40                     TO PE-HEADING-LAENGE
           COMPUTE PE-MBOX-TYP = PEMB-OK + PEMB-ICONINFORMATION
                                         + PEMB-APPLMODAL
           CALL "PETOOLS_MESSAGE_BOX" USING PE-MESSAGE
                                            PE-MESSAGE-LAENGE
                                            PE-HEADING
                                            PE-HEADING-LAENGE
                                            PE-MBOX-TYP
                                            PE-MBOX-RC

           .
       WARNING-HINWEIS-EX.
           EXIT.
		 
PROCEDURE DIVISION - Fehler- & Warnungsroutinen
Behandlung von Fehlern
      ******************************************************************
       ERROR-ROUTINE SECTION.
      ******************************************************************
       ERROR-ROUTINE-ST.

           MOVE "Es ist ein Fehler aufgetreten!"
                                       TO PE-HEADING
           MOVE SPACE                  TO PE-MESSAGE
           STRING PE-ERRM-TEXT               DELIMITED BY LOW-VALUES
              INTO PE-MESSAGE
           END-STRING

           MOVE 100                    TO PE-MESSAGE-LAENGE
           MOVE 40                     TO PE-HEADING-LAENGE
           COMPUTE PE-MBOX-TYP = PEMB-OK + PEMB-ICONSTOP
                                         + PEMB-APPLMODAL
           CALL "PETOOLS_MESSAGE_BOX" USING PE-MESSAGE
                                            PE-MESSAGE-LAENGE
                                            PE-HEADING
                                            PE-HEADING-LAENGE
                                            PE-MBOX-TYP
                                            PE-MBOX-RC

           CLOSE E-ARTIKELDATEI

           EXEC PRINT
               DESTROY DOCUMENT DOC-UMSATZLISTE
           END-EXEC

           STOP RUN

           .
       ERROR-ROUTINE-EX.
           EXIT.