Inhalt
Index
Support Über uns
Home

6.3 Grafische Ausdrucke erstellen



Zur Erstellung der grafischen Ausdrucke steht ein einfacher Call zur Verfügung, der alle Befehle für den Drucker in Steueranweisungen zusammenfasst.


 
Format:
call print using steueranweisung.





Im Gegensatz zu der Lineprinter-Methode wird bei grafischem Ausdruck nicht eine Zeile, sondern immer eine ganze Seite bearbeitet.

Auf dieser Seite kann während der Bearbeitung wahlfrei positioniert werden, d.h. die einzelnen Elemente müssen nicht in der Reihenfolge von oben nach unten entsprechend ihrer Anordnung auf der Seite abgearbeitet werden.

Acc-Cobol teilt die Druckseite automatisch in das Format 80 Zeichen x 70 Zeilen ein.

Positionsangaben können entweder in 100stel Millimeter oder in Zeichen/Zeile angegeben werden.

Es ist darauf zu achten, daß auf der Druckseite immer ein schmaler Rand existiert, der nicht beschrieben werden kann. Dieser Rand unterscheidet sich, je nach Druckertyp.


Alle Steuerbefehle können sowohl in Groß- als auch mit Kleinbuchstaben angegeben werden.

Besitzen Steuerbefehle optionale Argumente (in [] angegeben), die nicht verwendet werden, müssen die Befehle mit einem Punkt abgeschlossen werden.


6.3.1 Print mit Argumenten




 
Format:
call print using steueranweisung [arg1] [arg2] ...



In den Steueranweisungen können sämtliche Argumente durch Argumente der Call-Anweisung ersetzt werden.

Hierzu werden die Argumente beim Call einfach durchnumeriert. In der Steueranweisung wird dann als Argument nur der Platz- halter ^ gefolgt von der Nummer verwendent. ^1 entspricht also arg1, ^2 arg2 usw.

Um die Übersichtlichkeit zu erhöhen, können den Call-Argumenten auch beliebige Namen zugewiesen werden:

#Name1 #Name2 ....

Anstelle von ^1 kann nun auch ^Name1 angegeben werden.
       Bsp.
       Als Argumente sollen die Position, ein Text, Schriftart
       und Schriftgröße übergeben werden.


       Inhalt der Datei text.pms:


       #xpos
       #ypos
       #font
       #size
       #text


       fo ^font ^size
       p ^xpos ^ypos u.
       ^text



       Aufruf aus dem Programm:


       call print using '<text.pms>' 1000 2000 'Verdana' 8  'Ein Text'.
       call print using '<text.pms>' 1000 2200 'Verdana' 12 'Noch ein Text'.








6.3.2 Verwendung einer Anweisungsdatei




 
Format:
call print using '<pfadname>' [arg1] [arg2] ...



Alle Steueranweisungen können sich auch in einer Datei befinden. Bei einfachen Layout-Änderungen braucht das Programm nicht mehr geändert werden, es genügt die Änderung der Anweisungsdatei.



6.3.3 Deklaration von Konstanten



Zur Vereinfachung der Print-Anweisungen können auch konstante Werte mit Namen deklariert werden.


 
Format:
!name Wert



Beispiel print1.pms:


       !Tab1           1000
       !Tab2           3400
       !Text1          "Das ist ein Text"


       p Tab1 2000 o.  "Test1"
       p Tab1 3000 o.  Text1


       p Tab2 2000 o.  "Test2"
       p Tab2 3000 o.  Text1





Durch Änderung der Anweisung !Tab1 1000 kann nun beliebig eingerückt werden.

Mit prmask kann eine beliebige Printmaske auf einen Drucker ausgegeben werden.

Siehe prmask.cob

Hier das Ergebnis von prmask print1.pms

Konstantendefinition in Printmasken

6.3.4 Positionierung




 
Format:
P Hpos Vpos [o][u]


Hpos ist die horizontale Position auf der aktuellen Seite Vpos ist die vertikale Position auf der aktuellen Seite

Hpos kann entweder als Spaltennummer oder in 100stel Millimeter angegeben werden.

Vpos kann entweder als Zeilennumer oder in 100stel Millimeter angegeben werden.

Wird der Zusatz u angegeben, wird der folgende Text unterhalb dieser Position ausgegeben, d.h. die Position gibt die obere linke Ecke des gedachten Rahmens um den Text an.

Mit dem Zusatz o wird der Text oberhalb dieser Position geschrieben.



6.3.5 Ausdruck eines festen Textes



Angabe des Textes in Gänsefüßchen.


 
Format:
"Textausgabe"


Bsp.:

Positionierung des Wortes Rechnung auf einem Formular,

2 cm von links, 8,7 cm von oben:

p 2000 8700 u "Rechnung"



6.3.6 Font auswählen




 
Format:
Fo fontname [Schriftgröße]


Bsp.:

fo 'Courier' 12 p 2000 8700 u "Rechnung"



6.3.7 Liniendicke ändern




 
Format:
D Dicke


Die Dicke wird in Pixel angegeben.

z.B. d 50

Siehe auch Attribute


6.3.8 Schriftfarbe ändern




 
Format:
C Farbe setzen Rot Blau Grün


Die Farbe wird dezimal angegeben

z.B. c 128 128 128

Die Farbe wird sowohl für den Text, als auch für die Liniengrafik verwendet.

Siehe auch Attribute



6.3.9 Attribute ändern

Alle Attribute können mit dem Befehl A verändert werden. Nach A folgt ein Literal, das wiederum folgende Angaben beinhalten kann:


 
AttributAuswirkung
F+Fettdruck ein
F-Fettdruck aus
U+Unterstreichen ein
U-Unterstreichen aus
S+Durchstreichen ein
S-Durchstreichen aus
K+Kursiv ein
K-Kursiv aus
P=xxxSchriftgröße setzen (xxx) ist numersicher Wert
D=xxxStrichdicke setzen
W=xxxWinkel der Textrichtung setzen
R=xxxFarbe - Rotanteil setzen
B=xxxFarbe - Blauanteil setzen
G=xxxFarbe - Grünanteil setzen


Bsp.:


        call print using  
          'a "f+ p=50 r=255 w=45" p 2000 9700 u "Mahnung"'.



Siehe print1.cob


Grafischer Druck mit Acc-Cobol



6.3.10 Linien ziehen




 
Format:
L startx starty endx endy


startx und endx sind die horizontale Positionsangabe starty und endy sind die vertikale Positionsangabe

Zieht eine Linie vom Startpunkt zum Endpunkt mit der aktuellen Farbe und Strichstärke.


6.3.11 Rahmen an der aktuellen Position ziehen




 
Format:
R breite höhe


An der aktuellen Position wird ein Rahmen mit den angebenen Dimensionen in der aktuellen Farbe und Strichstärke gezogen.



6.3.12 Rahmen ziehen




 
Format:
Bo Hpos Vpos Breite Höhe


An der angegebenen Position wird ein Rahmen mit der angebenen Größe gezogen.


6.3.13 Tabelle zeichnen




 
Format:
TD Breite Höhe Spalten Zeilen


An der aktuellen Position wird eine Tabelle mit den angebenen Dimensionen in der aktuellen Farbe und Strichstärke gezogen.

Siehe print2.cob


6.3.14 Textausrichtung für Tabelle festlegen




 
Format:
TJ Ausrichtung


Legt die Schreibausrichtung in den Zellen der Tabelle fest.

 
Horizontal Vertikal
l links o oben
m mittig m mittig
r rechts u unten


tj lo setzt die Ausrichtung horizontal auf links und vertikal auf oben

Siehe print2.cob


6.3.15 Tabelle beschreiben




 
Format:
TW Spalte Zeile Text


Es wird der Text in die angegebene Zelle geschrieben.

Eine Tabelle mit Acc-Cobol drucken Siehe print2.cob



6.3.16 Text ausrichten




 
Format:
J Hpos Vpos Breite Höhe Typ "Text"


Die Ausrichtung des Textes erfolgt in dem angebenen Rechteck, wobei Hpos, Vpos die obere linke Ecke des Rahmens angibt.

Typ gibt in der 1. Stelle die horiontale, in der 2. Stelle die vertikale Ausrichtung, wie folgt, an:

 
Horizontal Vertikal
l links o oben
m mittig m mittig
r rechts u unten


       Beispiel: Der Text "Mittig" soll rechtsbündig ausgerichtet werden.


       j 1000 2000 1000 1000 rm "Mittig".





Textausrichtung: Ausgabe von print4.cob

      Beispielprogramm print4.cob



       identification division.
       environment division.
       data division.
       working-storage section.
       01 name         pic x(50).
       01 stat         pic 9(5).
       procedure division.


      * Drucker auswählen


        call getprinterdialog using name stat.


        if stat not = 0 stop run.


      * Schriftart auswählen


        call print using 'fo arial 8'.


      * Text ausrichten



        call print using 'j  1000 1000 2000 1000 lo "links oben"'.
        call print using 'bo 1000 1000 2000 1000'.


        call print using 'j  4000 1000 2000 1000 mo "mittig oben"'.
        call print using 'bo 4000 1000 2000 1000'.


        call print using 'j  7000 1000 2000 1000 ro "rechts oben"'.
        call print using 'bo 7000 1000 2000 1000'.


        call print using 'j  1000 2500 2000 1000 lm "links mitte"'.
        call print using 'bo 1000 2500 2000 1000'.


        call print using 'j  4000 2500 2000 1000 mm "mitte mitte"'.
        call print using 'bo 4000 2500 2000 1000'.


        call print using 'j  7000 2500 2000 1000 rm "rechts mitte"'.
        call print using 'bo 7000 2500 2000 1000'.


        call print using 'j  1000 4000 2000 1000 lu "links unten"'.
        call print using 'bo 1000 4000 2000 1000'.


        call print using 'j  4000 4000 2000 1000 mu "mitte unten"'.
        call print using 'bo 4000 4000 2000 1000'.


        call print using 'j  7000 4000 2000 1000 ru "rechts unten"'.
        call print using 'bo 7000 4000 2000 1000'.


        call prclose.







6.3.17 Rechteck mit Farbe füllen




 
Format:
fi Hpos Vpos Breite Höhe Farbe



Füllt das angegebene Rechteck aus.

Beispiel: Erstellen von Grafiken

Grafiken: Ausgabe von print3.cob

       identification division.
       environment division.
       data division.
       working-storage section.
       01 name         pic x(50).
       01 stat         pic 9(5).
       01 max          pic 9(5).
       01 len          pic 9(7).
       01 x            pic 9(5).
       01 xs           pic 9(5).
       01 y            pic 9(5).
       01 ys           pic 9(5).
       01 yp           pic 9(5).
       01 cur          pic 9(5).       
       01 upd          pic 9(5).       
       01 colf.
        02 filler      pic 9(9) value 255128000.
        02 filler      pic 9(9) value 034121208.
        02 filler      pic 9(9) value 214029145.
        02 filler      pic 9(9) value 000223000.
        02 filler      pic 9(9) value 026196193.
        02 filler      pic 9(9) value 189100034.
        02 filler      pic 9(9) value 034050189.
        02 filler      pic 9(9) value 166000000.
        02 filler      pic 9(9) value 128000128.
        02 filler      pic 9(9) value 186048114.
       01 col redefines colf pic 9(9) occurs 10 indexed i.
       77 texi        pic 9.
       procedure division.


      * Drucker auswählen


        call getprinterdialog using name stat.


        if stat not = 0 stop run.


        move 200 to cur.
        move 1000 to x max.
        move 150 to upd.
        move 3500 to y ys.
        move 5000 to yp.
        set i to 1.
      *
      *  FillRect: X-Position Höhe und Farbe werden als Argumente übergeben
      *  1. Grafik     von x=1000 bis 10000, y=2500 bis 3500
      *  2. Grafik     von x=1000 bis 10000  y=5000 bis 8000 
      *  
        call print using 'fo "Verdana" 8'.
       loop.
        compute len = 1000 * cur / max.
        compute y = ys - len.
        call print using 'fi ^1 ^2 1000 ^3 ^4' x y len col (i).
        compute len = len * 9.
        call print using 'fi 1000 ^1 ^2 250 ^3' yp len col (i).
        set texi to i.
        compute y = y - 500.
        call print using 'j ^1 ^2 1000 500 "mu" "Text" ^3' x y texi.
        compute xs = len + 1020.
        compute y = yp - 100.
        call print using 'j ^1 ^2 1000 450 "lm" "Text" ^3' xs y texi.
        add 1000 to x.
        add 300 to yp.
        set i up by 1.
        compute cur = cur + upd.
        if cur > max move -220 to upd
                     move 900 to cur.
        if cur < 0 move 700 to cur.
        if i < 11 go to loop.                                 
      *
      * Grafiken umrahmen und Text hinterlegen
      * 
      *  1. Grafik     von x=1000 bis 11000, y=2500 bis 3500
       call print using 'fo "Verdana" 11'.
       call print using 'a "f+"'.
       call print using 'bo 500 2000 11000 2500'.
       call print using 'j  500 4000 11000 500 mm "Grafik Nr. 1"'.
      *  2. Grafik     von x=1000 bis 10000  y=5000 bis 7850 
       call print using 'bo 500 4500 11000 4500'.
       call print using 'j  500 8500 11000 500 mm "Grafik Nr. 2"'.
       call prclose.



Siehe print3.cob


6.3.18 Bitmap ausgeben





 
Format:
b Bitmapname Hpos Vpos Breite Höhe


Gibt die Bitmap an der angegebenen Postion aus.

Wird für Breite und Höhe der Wert -1 angegeben, werden die original Werte der Bitmap verwendet. Wird nur für die Breite oder für die Höhe -1 verwendet, wird sie entsprechend dem Seitenverhältnis des Originalbildes berechnet.


Drucken von Bitmaps mit Acc-Cobol
       Beispielprogramm print5.cob


      *c32 %;slink §
       identification division.
       environment division.
       data division.
       working-storage section.
       01 name         pic x(50).
       01 stat         pic 9(5).
       procedure division.


      * Drucker auswählen


        call getprinterdialog using name stat.


        if stat not = 0 stop run.
        call print using 'fo "Arial" 8'.


        call print using  
          'b "bilder\saturn.bmp" 1000 1000 2000 -1'.
        call print using 
         'p 1000 3000 o."Saturn.bmp"'.
        call print using 
         'p 1000 3300 o."originales Seitenverhältnis"'.
        call print using
          'b "bilder\saturn.bmp" 1000 4000 2500 2000'.
        call print using  'p 1000 6500 o."Saturn.bmp"'.
        call print using  'p 1000 6800 o."mit 2500 2000"'.


        call print using  
          'b "bilder\saturn.jpg" 7000 1000 1500 1000'.
        call print using 'p 7000 2500 o."Saturn.jpg"'.
        call print using 'p 7000 2800 o."mit 1500 1000"'.


        call print using
          'b "bilder\saturn.jpg" 7000 4000 -1 2000'.
        call print using 'p 7000 6500 o."Saturn.bmp"'.
        call print using 'p 7000 6800 o."originales Seitenverhältnis"'.


        call prclose.



Siehe print5.cob



6.3.19 Barcode ausgeben




 
Format:
bc Code Hpos Vpos Breite Höhe


Gibt den angegebenen Code als Barcode aus.

       Beispiel:


       call print using 'bc 12345 1000 1000 2000 1000"'.





Barcode mit Acc-Cobol



6.3.20 Neue Zeile




 
Format:
n


Es wird auf die nächste Zeile positioniert.


6.3.21 Papierformat setzen





 
Format:
s Spalten Zeilen Breite Höhe


Setzt die Größe des Papiers auf das angebene Format. Breite und Höhe werden in mm angegeben.

Die Anzahl Spalten und Zeilen bestimmen den Zeilenvorschub für das Kommando n.

Die Positionierung kann entweder in mm oder mit Spalte/Zeile erfolgen (Hpos,Vpos).


6.3.22 Offset setzen



Um gleichbleibende Ausdrucke mit der gleichen Maske an verschiedenen Stellen ausgeben zu können, kann der Offset-Befehl verwendet werden.


 
Format:
o x-Offset y-Offset


Normalerweiste steht der Offset auf 0. Wird er gesetzt, werden alle Positionierung relativ zum Offset ausgeführt.

Beispielprogramm print6.cob Verwendung des Offsetbefehls

      *c32 %;slink §
       identification division.
       environment division.
       data division.
       working-storage section.
       01 name         pic x(50).
       01 stat         pic 9(5).
       procedure division.


      * Drucker auswählen


        call getprinterdialog using name stat.


        if stat not = 0 stop run.
        call print using '<print1.pms>'.
        call print using 'o 5000 0'.
        call print using '<print1.pms>'.
        call print using 'o 0  2000'.
        call print using '<print1.pms>'.
        call print using 'o 5000  2000'.
        call print using '<print1.pms>'.
        call prclose.



Siehe print6.cob


6.3.23 Anzahl Kopien, Queformat einstellen




 
Format:
m Kopien [Format] [Breite] [Höhe].


Ist Format = 'q' wird im Querformat gedruckt.

Breite und Höhe werden in mm angegeben.

Beispiel:

m 1 'q'.

Der Ausdruck erfolgt im Querformat.

m 5.

Es werden 5 Kopien erstellt.

Zurück zu Acc-Cobol: Grafische Ausdrucke erstellen: Call PRINT    Hoch zu Grafischer Druck mit Acc-Cobol in MS-Windows-Systemen    Weiter zu Print-Befehl Kurzreferenz
Entwickler Portal Impressum AGB Kontakt


© 1980-2017 Acc Computertechnik GmbH All rights reserved.