Lade...
 

Drucken mit OLE (Belege Drucken)

Belege drucken

 

Beschreibung

Diese Hilfe gibt Ihnen einen Überblick der Möglichkeiten beim Drucken.

Dokumentbausteine

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).

Dokument

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.

Reihenfolge beim Ausdruck von Dokumentbausteinen

Wenn der Ausdruck auf eine Seite passt:

  1. Kopfzeile
  2. Dokumentkopf
  3. Listenkopf
  4. x mal Listenposition / Listengruppe
  5. Listenfuß
  6. evtl. Konditionen z.B. für Aufträge, Bestellungen, Rechnungen
  7. Dokumentfuß (letzte Seite)
  8. Fußzeilen (jede Seite)

Mehrseitiger Ausdruck:

1. Seite

  1. Kopfzeile
  2. Dokumentkopf (mit Bedingung: "erste Seite" verknüpft)
  3. Listenkopf  (mit Bedingung: "erste Seite" verknüpft)
  4. x mal Listenposition / Listengruppe
  5. Übertrag unten
  6. Fußzeilen

2.- vorletzte Seite

  1. Kopfzeile
  2. Dokumentkopf (mit Bedingung: "Folgeseite" verknüpft)
  3. Listenkopf (mit Bedingung: "Folgeseite" verknüpft)
  4. Übertrag oben
  5. x mal Listenposition / Listengruppe
  6. Übertrag unten
  7. Fußzeilen

Letzte Seite

  1. Kopfzeile
  2. Dokumentkopf (mit Bedingung: "Folgeseite" verknüpft)
  3. Listenkopf (mit Bedingung: "Folgeseite" verknüpft)
  4. Übertrag oben
  5. x mal Listenposition / Listengruppe
  6. Listenfuß
  7. evtl. Konditionen z.B. für Aufträge, Bestellungen, Rechnungen
  8. Dokumentfuß (letzte Seite)
  9. Fußzeilen (jede Seite)

Optionen für Bausteine

Dokumentbausteine können mit folgenden Optionen festgelegt werden.

  • Neue Seite vor dem Baustein
    Vor dem Druck des Bausteines wird ein Seitenumbruch eingefügt. Bausteine, welche für alle Seiten gelten (z. B. Kopfzeile mit Firmenlogo) werden in diesem Fall berücksichtigt und mitgedruckt.
  • Neue Seite nach dem Baustein
    Nach dem Druck eines Bausteines wird eine Seitenumbruch eingefügt. Bausteine, welche für alle Seiten gelten (z. B. Kopfzeile mit Firmenlogo) werden in diesem Fall berücksichtigt und mitgedruckt.
  • Leeren Baustein unterdrücken
    Ein Baustein, der aus Dokumentvariablen besteht, diese aber beim Drucken keinen Inhalt zugewiesen bekommen, kann auf diese Weise ignoriert werden. Hierdurch können unnötige Leerzeilen vermieden werden.

Beispiele für Bedingungen in Dokumentbausteinen

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: 

  • Einfügen (Bedingung für erste Seite)
  • Einfügen (Bedingung für Folgeseite)
  • Einfügen (Listenkopf für Listenanfang)
  • Einfügen (Listenkopf 2. Seite bei Listen
    die größer sind als eine Seite)

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

  • Ermitteln des Mandanten (Ist Mandant = "000" ?) var(cyberEnterprise).uniqueID="000"
  • Zum Jahreswechsel 2003 soll ein neuer Baustein verwendet werden. date.YearOfDate()>=2003

Siehe auch Problembehebung: "Probleme bei Bedingungen"

 

Verwandte Themen

 


Technische Dokumentation

OLE-Objekte im Dokumentbaustein

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.

Funktionen

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.

Anleitung zum Drucken

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. 

Module

print.mod, printole.mod, printstd.mod, printpro.mod, paper.mod

Verwendete Objekttypen

CX_COM_OBJECT,
CX_COMPOUND_TXN,
CX_CONTAINER,
CX_DOCUMENT,
CX_MULTIPLE_COM_OBJECT

Dynamische Datenfelder

keine

Druckklassen

CX_PRINTER,
CX_PRINTER_PROPERTIES,
CX_PAGE_PROPERTIES,
CX_PAPER_FORMAT,
CXP_PRINT_JOB

Siehe Auch:

 

Operativer Betrieb