|
|
Diese Hilfe gibt Ihnen einen Überblick der Möglichkeiten beim Drucken.
Die Dokumentbausteine sind die umhüllenden Objekte für die OLE-Objekte. Er besitzt einen mehrsprachigen Namen, eine Nummer, den Typ, den OLE-Text sowie Unterbausteine.
Der Typ eines Dokumentbausteins bestimmt die Reihenfolge beim Ausdruck (siehe Reihenfolge beim Ausdruck von Dokumentbausteine). Ein Dokumentbaustein kann folgenden Typ annehmen:
Dokumentkopf,
Listenkopf,
Listenposition,
Listenfuß,
Listenübertrag unten,
Listenübertrag oben,
Listengruppe,
Dokumentfuß (letzte Seite),
Fußzeilen
Besitzt ein Dokumentbaustein Unterbausteine, so werden diese beim Ausdruck berücksichtigt. Dabei verhält sich das System so, als wenn der Baustein selbst ein Dokument wäre, d.h. alle Unterbausteine werden in der selben Reihenfolge gedruckt wie im Dokument (siehe Reihenfolge beim Ausdruck von Dokumentbausteine).
Ein Dokument (Pseudo-Klasse CX_DOKUMENT) besteht aus Dokumentbausteinen und besitzt weitere Merkmale wie Randeinstellungen, Dokumenttyp, Name und Dokumentnummer.
Mögliche Dokumenttypen sind:
Einkauf,
Verkauf,
Fertigung,
Lager,
FiBu,
Controlling,
Sonstiges
Beim Ausdruck eines Dokuments bestimmt der Typ des Dokumentbausteins die Reihenfolge.
Wenn der Ausdruck auf eine Seite passt:
Mehrseitiger Ausdruck:
1. Seite
2.- vorletzte Seite
Letzte Seite
Dokumentbausteine können mit folgenden Optionen festgelegt werden.
Dokumentbaustein können in ClassiX® mit Bedingungen versehen werden. Soll ein Beleg (z. B. ein Lieferschein) auf der ersten Seite einen anderen Dokumentenkopf haben als die Folgeseiten ist es möglich zwei verschiedene Bausteine anzulegen, welche dann nach dem Wahrheitsgehalt der Bedingung ausgewählt werden.
Es können beliebig viele Bausteine mit Bedingungen erstellt werden. Es wird aber nur maximal eine zutreffende Bedingung abgearbeitet. Trifft eine Bedingung wird der Dokumentbaustein aufbereitet und es geht mit dem nächsten Dokumentbaustein weiter.
In ClassiX® sind folgende Standardbedingungen vordefiniert, welche sich bequem über die Menüsteuerung anlegen lassen:
|
|
Bedingung: "Nur auf der ersten Seite" (print.counter=1)
Bedingung: "Auf Folgeseiten" (print.counter>1)
print.counter ist eine Variable welche den aktuelle Seitenzahl,
beginnend bei 1, speichert.
Bedingung: "Kopf von Listenanfang" (var(itemCounter)=0)
Bedingung: "Listenkopf nach Listenumbruch" (var(itemCounter)>0)
itemCounter ist eine Variable welche die Gedruckten
Listenpositionen hoch zählt.
Wichtig ist, dass die Variable bereits vor dem Drucken der Position
hochgezählt wird. Sollte also bereits beim Drucken der Ersten Position ein
Seitenumbruch stattfinden, soll auf der ersten Seite der Listenkopf für die
erste Seite und auf der folgenden der entsprechende
"Folgeseiten-Listenkopf"
Die einzutragende Bedingung für die erste Seite lautet also (var(itemCounter)=0)
Auf die Variable kann nur mittels Zugriffsausdruck
("var") zugegriffen werden.
Weitere Beispiele für Bedingungen in Dokumentbausteinen
var(cyberEnterprise).uniqueID="000"date.YearOfDate()>=2003Siehe auch Problembehebung: "Probleme bei Bedingungen"
Die OLE-Objekte enthalten Dokumentvariablen, die beim Ausdruck durch die Werte des zu druckenden Objektes ersetzt werden. Dazu muss das Druckobjekt in den PlugSpace gestellt werden (siehe im Modul printole.mod das Statement Define (SetTransactionPlugSpace)). Standardmäßig werden außerdem das Mandanten- und ein temporäres Druckobjekt in den PlugSpace gestellt (das Mandantenobjekt enthält alle wichtigen Informationen über den Mandanten, wie z.B. die Adresse; das temporäre Druckobjekt wird z.Z. nur für die Ausgabe der Seitennummern sowie der Zwischensummen benötigt). Handelt es sich bei den zu druckenden Objekt um eine Transaktion so werden alle Subtransaktionen als Listenpositionen des Objekts gedruckt.
Die Ausgabe von Dokument wird im ClassiX® durch ein Dokument-Objekt gesteuert, das zugleich als Puffer zwischen den InstantView®-Anweisungen und dem Druckausgabekanal des jeweiligen Betriebssystems steht. Das Dokument-Objekt hält die Information der gesamten Dokuments und die Ausgabe wird explizit mit PrintDocument angestoßen. Außerdem ist eine Vorschau auf dem Bildschirm möglich.
Das System hat vier folgende Klassen: CX_PRINTER, CX_PRINTER_PROPERTIES, CX_PAGE_PROPERTIES, CX_PAPER_FORMAT, die die Einstellungen von Drucker und verschiedenen Dokumenttypen speichern können. Die Objekte dieser Klassen können persistent gemacht werden. Eine Liste von auf dem Client installierten Drucker kriegt man von Printermanager mit Hilfe der Funktion GetInstalledPrinters. Um die Drucker-Eingeschafften zu setzen bzw. anzuzeigen hat die Klasse CX_PRINTER die Funktion SelectPrinterProperties. Die Funktion zeigt den Printereingeschafften-Dialog von ausgewählten Drucker an, der von Drucker abhängig ist. Da in diesem Dialog sowohl Drucker-Eingeschafften (Druckername, Druckeranschluss,...) als auch die Seiten-Eingeschafften (Papierformat, Papierausrichtung,...) gesetzt werden können, legt die SelectPrinterProperties- Funktion zwei Objekte auf den Stack zurück: CX_PRINTER_PROPERTIES und CX_PAGE_PROPERTIES. Die Randseiten-Einstellungen können im Printereigenschaften-Dialog meistens nicht gesetzt werden und müssen von InstantView® aus gesetzt werden, das gleiche geht für das benutzerdefinierte Papierformate. Alle Papierformate sind die Objekte der Klasse CX_PAPER_FORMAT. Das Setzen von Drucker, Drucker- und Seiten -Eingeschafften beim einem Dokument erfolgt durch den Aufruf einer Member-Funktion SetPagePropertiesAndPrinter, die die Einstellungen für ein Seitenbereich sichert. Wenn die Einstellungen getroffen wurden, kann das Dokument mit der Methode CheckPrintedRange daraufhin untersucht werden, ob für alle Seiten gültige Einstellungen gesetzt sind.
Die CXP_PRINT_JOB Klasse bildet einen Druckjob in System ab. Im CXP_PRINT_JOB Objekt werden solche Einstellungen wie Druckbereich Seiten von... bis..., Kopienanzahl und Sortierung beim Drucken von mehreren Kopien gesetzt. Deswegen muss ein CXP_PRINT_JOB Objekt vor der Dokument-Vorbereitung mit Hilfe der Dokument-Methode CreatePrinterJob erzeugt werden. Wenn das Dokument mehrere Seiteneinstellungen hat, so werden automatisch weitere Druckjobs erzeugt: ein Druckjob pro Seiteneinstellung. Beim abgeschalteten Spooling wird der Druckjob, nachdem das Dokument fertig aufgebaut ist, mit Hilfe der StartPrinting Methode oder der InstantView®-Anweisung PrintDocument gestartet. Beim angeschalteten Spooling wird Druckjob automatisch gestartet, wenn die Anzahl fertiggestellter Seiten die Anzahl der Spool-Seiten erreicht hat.
Mit der Funktion PrintToFile kann das Dokument im System archiviert werden. Beim Archivieren wird eine oder mehrere Dateien vom Typ Enhanced- Metafile (*.emf) erzeugt, die mit dem ClassiX®- Metafileviewer zu betrachten. Wenn das Dokument mehrere Seiteneinstellungen hat, dann wird ein Metafile pro Seiteneinstellung erzeugt und ein Vektor aus erzeugten Dateinamen (übergebene Dateiname + Seitennummer vom Anfangsbereich des Seiteneinstellung ) und NULL- Strings zurückgeliefert. Die NULL- String bilden die Seiten mit ungeänderten Einstellungen ab, die in einem Metafile gespeichert wurden.
print.mod, printole.mod, printstd.mod, printpro.mod, paper.mod
CX_COM_OBJECT,
CX_COMPOUND_TXN,
CX_CONTAINER,
CX_DOCUMENT,
CX_MULTIPLE_COM_OBJECT
keine
CX_PRINTER,
CX_PRINTER_PROPERTIES,
CX_PAGE_PROPERTIES,
CX_PAPER_FORMAT,
CXP_PRINT_JOB
Siehe Auch: