Lade...
 

Drucken in ClassiX

Drucken in ClassiX

Diese Dokumentation soll dem Anwender von ClassiX das Zusammenspiel von Word und dem ClassiX – Druck näher bringen. Somit wird zuerst erklärt, welche Worddokumente wie am Druck beteiligt sind, bevor der Aufbau eins Druckformulars beschrieben wird. In diesem Zusammenhang wird letztendlich noch der Zugriff von Word auf Informationen aus der Datenbank, an ausgewählten Beispielen, erläutert.
Zu wissen, welche Änderungen in den Worddokumenten welche Veränderungen im Ausdruck eines Formulars bewirken, sollte das allgemeine Ziel dieser Dokumentation sein.

1. Arbeiten mit Word
        1.1 OleBox
        1.2 Formatvorlage
2. Einteilung der Worddokumente
        2.1 Stammdatendokumente
        2.2 Anschreiben- und Fußdokumente
        2.3 Textbausteine
        2.4 Dokumentenbausteine
3. Überblick Formulare
        3.1 Formulare
                3.1.1 Baumdarstellung
                3.1.2 Ex- und Importieren von Formularen
        3.2 Dokumentbausteine
                3.2.1 Bedingte Dokumentbausteine
                3.2.2 Ex- und Importieren von Dokumentbausteinen
4. Dynamische Datenfelder
5. Häufige Probleme und Fragen
6. Tipps und Tricks

 
 

 

1. Arbeiten mit Word

1.1 OleBox

Die OleBox stellt die Schnittstelle zwischen ClassiX und den Word- und Exceldokumenten her. Durch Doppelklick auf ein angezeigtes OLE-Objekt #01 wird die entsprechende Anwendung gestartet und das OLE-Objekt kann darin bearbeitet werden.
Ähnlich einem MLString-Widget #02 ist auch die MLOleBox mehrsprachenfähig. Die Sprache kann durch die Tasten PgUp/PgDown (Bild auf, Bild ab) umgestellt werden. Zu Orientierung, wird in der oberen Rechten Ecke des Widgets die aktuelle Sprache, durch das Länderkürzel (in der locales.txt änderbar),  angezeigt.

Tipp:
Eine OleBox akzeptiert das Droppen von OLE-Objekten. Man kann also auch eine MS-Word-Datei, welche man außerhalb der ClassiX- Datenbank bearbeitet, über „Drag and Drop“ in eine OleBox ziehen.

Nach dem Bearbeiten eines Worddokumentes gibt es mehrere Wege, um das Worddokumentes zu speichern und zu ClassiX zurückzukehren. Die „richtigeren“ Möglichkeiten sind die über das Menü (Datei -> Schließen) beziehungsweise über das Schließenkreuz.

Die Worddokumente, die sich hinter einer OleBox verbergen, können auch Dokumentvariablen enthalten, welche in einem späteren Abschnitt beschrieben werden. Aktualisieren sich die Informationen, die hinter diesen Feldern stehen, so kann man auch die Ansicht der OleBox aktualisieren. Dies geschieht über den Auffrischen- Button.  

1.2 Formatvorlage

Um ein einheitliches Erscheinungsbild der Worddokumente zu realisieren, macht sich ClassiX die Vorteile der Formatvorlage zu nutzen.

Eine Formatvorlage ist eine Gruppe von Formatierungsmerkmalen, die dem Text im Dokument zugewiesen werden kann, um auf schnelle Weise das Erscheinungsbild zu ändern. Wenn Sie eine Formatvorlage zuweisen, übernehmen Sie eine Gruppe von Formatierungen in einem Schritt.

Wenn man Microsoft Word startet, basiert das neue, leere Dokument auf der Vorlage Normal, und der Text, den man eingibt, verwendet die Formatvorlage Standard. Wenn man mit der Eingabe beginnt, verwendet Word Schriftart, Schriftgrad, Zeilenabstand, Textausrichtung und andere Formate, die gegenwärtig für die Standardformatvorlage definiert sind.

Da die Formatvorlage, welche auf jedem Rechner eine andere Ausprägung hat, lokal gespeichert wird, unterscheiden sich auch die Worddokumente, die an verschiedenen Arbeitsplätzen angelegt wurden. Neben dem Effekt, dass eine Vielfalt von unterschiedlichen Formaten entsteht, ergibt sich folgendes Problem.

Beim Drucken werden auch Wordtexte in andere Dokumente eingefügt. Dies geschieht über die Kopierfunktion von Word. Da beim Kopieren aber nur der Inhalt und signifikante Formatänderungen Kopiert werden, kann sich das Aussehen des Wordtextes im Druck ändern.

Beispiel:

Beim Kopieren eines Wordtextes wird nur der Inhalt und die Zusatzformate übernommen. Somit wird die Schriftgröße und der Zusatz „Fett“ mit in das Dokument2 übernommen, aber die Schriftart des kopierten Abschnittes ist nun „Times New Roman“

Um dieses Problem zu vermeiden, wird beim Anlegen eines neuen Worddokumentes aus ClassiX heraus eine eigene, für alle gleiche, Formatvorlage zugewiesen. Diese Vorlage („classix.dot“) befindet sich im /ClassiX/system –Verzeichnis. Sollen nun Beispielsweise, alle neuen Worddokument in der Schriftgröße 12 angelegt werden, so muss man dies einfach in der classix.dot definieren.

 

2. Einteilung der Worddokumente

2.1 Stammdatendokumente

Stammdatendokumente werden in ClassiX benutz, um das Objekt, von dem sie gehalten werden, zu beschreiben. Durch diese Art von Worddokumenten werden zum Beispiel Verkaufsartikel oder Konditionen näher beschrieben. Stammdatendokumente werden im Ausdruck 1 zu 1 wiedergegeben, da sie meist nur reinen Text enthalten.

2.2 Anschreiben- und Fußdokumente

Diese Worddokumente werden zum Bespiel in Angeboten und Bestellungen benutzt und enthalten neben reinen Text auch Felder #03, die durch ClassiX mit Informationen gefüllt werden. Somit ist es für den Bearbeiter eines Angebotes nicht nötig, ständig seinen Namen unter jedes Angebot zu setzen. Statt dessen kann er ein Feld definieren, welches diese Informationen für ihn aus der Datenbank ausliest und im Formular ausdruckt.

2.3 Textbausteine

Textbausteine werden hauptsachlich bei der Erstellung eines Vorgangsbeleges verwendet, wie zum Beispiel einem Brief. Sie unterscheiden sich jedoch zu den Dokumenten, die für das Drucken von komplizierten Formularen verwendet werden. Während ein Formular aus mehreren Bausteinen zusammengesetzt wird, besteht ein Vorgangsbeleg grundsätzlich nur aus einem einzigen Worddokument.
Textbausteine sind die Vorlage zu einem Vorgangsbelege. Beim Anlegen eines Beleges wird jeweils nur eine Kopie des Textbausteines erzeugt, mit der dann weitergearbeitet wird. Textbausteine enthalten somit fast ausschließlich Felder, da der Text dann von dem Benutzer individuell in die Kopie eingefügt werden.

2.4 Dokumentenbausteine

Dokumentenbausteine werden für den Aufbau eines komplexen Formulars verwendet. Allerdings bestehen sie nur aus Feldern oder Text, der für alle Ausdrucke gleich ist. Der Benutzer hat dann, im Gegensatz zu den Kopien der Textbausteinen, keinen Einfluss mehr auf die Worddokumente.
Während in den Textbausteinen ausschließlich Textinformationen in das Dokument eingefügt werden, werden in den Dokumentbausteinen auch ganze Worddokumente eingelesen. Dies sind hauptsachlich Stammdatendokumente.

 

3. Überblick Formulare

3.1 Formular

Ein Formular wird durch die Dokumentbausteine als auch durch die Randeinstellungen und den Dokumententyp etc. beschrieben. Formulare können sich im Typ unterscheiden und Bereichen zugeordnet werden:


In den Formularen werden die Dokumentenbausteine angegeben, aus welchen das Formular aufgebaut wird. Dabei bestimmt in der Regel die Reihenfolge der Bausteine auch den Aufbau des Formulars. Allerdings gibt es hier Ausnahmen. So gibt es im Angebot zum Beispiel eine fest vordefinierte Reihenfolge, die durch die Anordnung der Bausteine nicht mehr verändert werden kann. Ebenfalls werden die Kopf und Fußzeilen sowie die Überträge verständlicherweise auf jeder Seite wiederholt, unabhängig ihrer Position der Bausteinliste.

3.1.1 Baumdarstellung

Um den Aufbau eines Formulars zu analysieren dient vor allem die Baumdarstellung. Sie hat den großen Vorteil, dass auch die Unterbausteine der Dokumentenbausteine dargestellt werden, während in der Bausteingruppe nur die erste Ebene angezeigt wird.
Über die Symbole, welche im Baum benutzt werde, kann man die Art der Dokumentbausteine ablesen. Zudem wird noch die ID, der Name und in Klammern der Typ angezeigt.
Baumdarstellung Des Formulars

3.1.2 Ex- und Importieren von Formularen

Das Ex- und Importieren von Formularen bringt folgende nützliche Vorteile mit sich. Auf diese Weise kann man zum Beispiel Formulare außerhalb der Datenbank speichern/archivieren oder sie in einem Testsystem verändern und über den Export/Import in das laufende System zu übernehmen.
Die beschreibenden Dateien (*.fcp und *.for) für die Formulare befinden sich in der Regel im Verzeichnis Laufwerksbuchstabe:\Classix\Projektname\AppsWH\Data\Forms\Projektname\.
Die verwendeten Dokumentbausteine befinden sich in der Regel im Verzeichnis Laufwerksbuchstabe:\Classix\Projektname\AppsWH\Data\Forms\Projektname\Docs

Formulare können ganz einfach über das Selektionsfenster exportiert werden. Hierzu markiert man die Formulare, welche exportiert werden sollen und wählt "Bearbeiten -> Datenaustausch -> Exportieren". Anschließend klickt man unter Verzeichnisse auf einen der Button mit dem Ordner Symbol und wählt man über das FileDialog – Fenster den Ordner aus, in dem das bzw. die Formulare gespeichert werden sollen.

Danach wählt man, ob die Word-Dateien in einen Unterordner Namens Docs exportiert werden sollen, oder ins selbe Verzeichnis kommen. (Unter den beiden Buttons mit dem Ordner-Symbol beindet sich ein Button mit einem Pfeil nach links. Betätigt man diesen, werden keine Word-Dateien nach Docs exportiert, sondern mit in das vorher gewählte Verzeichnis gespeichert.

Unter Export kann ausgewählt werden, welche Sprachen exportiert werden sollen. Auch sieht man noch mal welche Dokumente exportiert werden und kann hier gegebenfalls ein falsches Dokument abwählen, bzw. die richtigen auswählen.

Nach einem Klick auf "Datenaustausch" findet man als findet man in dem Ordner eine `YXZ.for` und `YXZ.fcp` sowie zahlreiche Worddokumente, wenn man kinen Docs-Ordner haben wollte, ansonsten befinden sich die Word-Dateien im Docs-Ordner des selben Verzzeichnisses.

Formular Datenaustausch

In der `YXZ.for` findet man die Angaben des Dokumentes wieder. Also den Namen des Formulares und die Bausteinen, aus welchen es aufgebaut ist.
    DOCUMENT      1e   T("Rahmenbestellung", "") 1     25,00 mm  0,00 mm  10,00 mm  5,00 mm
    COMPONENT     1e   KOPFZEILE
    COMPONENT     1e   1e
    COMPONENT     1e   9
    COMPONENT     1e   3
    COMPONENT     1e   4e

In der `YXZ.fcp` werden dann dementsprechend die Angaben zu den Dokumentenbausteinen angegeben.
    COMPONENT     4ae  T("Bestellung (Unterposition)", "")  5    16
    COMPONENT     6    T("Bestellung", "Purchase Order")    7    8
    COMPONENT     4e   T("Bestellung", "Purchase Order")    5    1
    SUBCOMPONENT  4e                                        4ae
    COMPONENT     3    T("Bestellung", "Purchase Order")    3    8

Die noch verbleibenden Dateien sind die Worddokumente, die zu den Bausteinen gehören. Besteht ein Dateiname aus zwei numerischen Werten, so handelt es sich um einen einfachen Baustein. Der erste Wert beschreibt in diesem Fall die ID und der zweite Wert die Sprache. Anderenfalls handelt es sich um einen bedingten Baustein. Während der erste Wert weiterhin die ID beschreibt, steht der zweite Wert für die Bedingung und erst der Dritte für die Sprache.
 

Der Unterschied zwischen einfachen und bedingten Dokumentbausteinen wird im folgenden Abschnitt erklärt.

Das Importieren ist ähnlich dem Exportieren:
Im Listenfenster der Formulare wird über "Bearbeiten -> Datenaustausch -> Imortieren" das Datenaustausch-Fenster für den Import geöffnet.
In der Gruppe Verzeichnisse kann, mit einem Klick auf einen der Buttons mit Ordner Symbol, ein File-Dialog geöffnet werden, mit dem man die *.for oder *.fcp auswählt, die importiert werden soll. Sollte es kein Docs-Ordner geben, sondern die Word-Dateien liegen zusammen mit *.for und *.fcp, dann kann mit der Button (mit Pfeil nach links) unterhalb der Buttons mit dem Ordner-Symbol "Docs" aus dem Pfad für die Word-Dateien entfernt werden.
In der Gruppe "Import" kann ausgewählt werden, was mit bereits vorhandenen Formularen und Bausteinen passieren soll.
Mit dem Button "Datenaustausch" kann der Import gestartet werden.

Formular Datenaustausch Import

3.2 Dokumentbausteine

Die Dokumentbausteine sind die umhüllenden Objekte für die Worddokumente, welche beim Drucken eines Formulars benutzt werden. Neben den Worddokumenten halten sie noch Informationen wie ID, Name ,Typ und die Art des Bausteins. Zusätzlich können noch Unterbausteine eingefügt werden, die beim Drucken des Bausteines in der Reihenfolge berücksichtigt werden sollen, in der sie auch in der Unterbausteinliste angeführt werden.

Der Typ hat maßgeblichen Einfluss auf den Druck des Bausteines. So können Bausteine nur mit Kopfzeile, Fußzeile, Listenübertrag oben und Listenübertrag unten an die Entsprechende Stelle im Formular platziert werden.

Wichtig ist, dass der Dokumenten Kopf die Kopfzeile ab der zweiten Seite darstellt, aber dazu mehr im Abschnitt über bedingte Bausteine.

Zur Steuerung der Ausgabe eines Dokumentenbausteines dienen des weiteren die Checkboxen `Neue Seite vor dem Baustein` und `Neue Seite nach dem Baustein`.

Bausteintypen

 

Auswahl Bedingte Bausteine Dokumentbausteine werden durch ihre Art spezifiziert. Neben der Art `Kein Inhalt`, welche nur als Container für weiter Unterbausteine benutzt wird, gibt es noch das `Einfach -` und das `Bedingte Dokument`.
Während `Einfache Dokumente` nur ein Worddokument mit den verschiedenen Sprachen enthalten, lohnt es sich doch, einen genaueren Blick auf die `Bedingten Bausteine` zu werfen.

3.2.1 Bedingte Dokumentbausteine

Einen `Bedingten Dokumentbaustein` erhält man, in dem man die Art des Bausteines dementsprechend aus dem DropDown- Menü auswählt. Hierbei kann man die Option nutzen, dass der Inhalt des Einfachen Dokumentes in die Bedingung mit übernommen werden soll. In jedem Fall erhalten wir folgendes Bild. Bedingter Baustein Mit Einem Dokument
Das Auswählen einer Position der entstandenen Tabelle führt zum Öffnen eines neuen Fensters, über das man zu dem Wordobjekt gelangt. Außerdem kann man hier den Namen und die Bedingung dieser Position angeben. Das Anlegen sowie das Löschen neuer Positionen geschieht über den rechten Mausklick in das Bedingungsfenster. Beim Anlegen hat man sogar die Möglichkeit eine vordefinierte Bedingung auszuwählen. Als Bedingungen sind alle regulären Ausdrücke erlaubt, die TRUE oder FALSE zurückliefern und man kann dabei auf alle benutzten Variablen und Objekte zurückgreifen. Bedigter Baustein Kontextmenü

Zur Vertiefung dient vielleicht folgendes Beispiel. Dokumentköpfe werden in ClassiX in der Regel aus
Bedingten Bausteinen aufgebaut. So gibt es ein Worddokument, welches für die erste Seite verwendet wird und jeweils eins für die Folgeseiten in Abhängigkeit des angemeldeten Mandanten.

Beispiel Bedingtes Dokument

Über den Zugriffsausdruck print.counter greift man generell auf die aktuelle Seitenzahl zu.
Dementsprechend liefert die Bedingung print.counter=1 ein TRUE zurück, wenn aktuell die erste Seite gedruckt wird. Wie die nächsten Bedingungen aufgebaut sind wird in einen der nächsten Abschnitte geklärt. Man sieht aber, dass man zwei Bedingungen auch logisch Verknüpfen kann. So liefert die nächste Bedingung nur dann ein TRUE zurück wenn sowohl der Teil

var(cyberEnterprise).uniqueID=“002“

als auch der Teil

print.counter>1

erfüllt wird.

Wichtig ist es noch zu erwähnen, dass jeweils nur ein Worddokument zurückgegeben werden kann.
Werden zwei Bedingungen erfüllt, so wird nur das Worddokument der oberen Position zurückgegeben. Somit kann es von Vorteil sein, das man die Positionen über die Pfeile, die sich rechts von der Tabelle befinden, verschieben kann.

3.2.2 Ex- und Importieren von Dokumentbausteinen

Das Exportieren von Dokumentenbausteine verläuft in ähnlicher Art und Weise wie das der Dokumente. Zum Exportieren wählt man die Bausteine im entsprechenden Selektionsfenster aus und klickt auf "Bearbeiten -> Datenaustausch -> Exportieren". Es öffnet sich der File-Dialog man kann den Speicherort und den Namen der Datei wählen. Standardmäßig wird hier component.fcp vorgeschlagen.

 

4. Dynamische Datenfelder

Die Verbindung des Bausteins zum ClassiX-System entsteht über das Einfügen von Dokumentvariablen. Dies geschieht über das Menü Einfügen/Schnellbausteine/Feld (Word 2013). Es wird ein Fenster geöffnet, in dem das gewünschte Feld ausgewählt werden kann. Die Dokumentvariable ist unter der Kategorie Dokumentautomation als Feldname DocVariable zu finden. Durch den Button `OK` wird eine neue Dokumentvariable erstellt. Im Dokument wird der Eintrag { DOCVARIABLE \*MERGEFORMAT} eingefügt. Der Hacken in der Checkbox kann in der Regel raus genommen werde. Lässt man ihn drin sorgt er dafür, dass der Inhalt der DocVariable einheitlich ausgegeben wird. In Word gibt es zwei Modi um sich DocVariablen anzeigen zu lassen. Zwischen dem ausführlichen {DOCVARIABLE ID \*MERGEFORMAT} und dem verkürzten Modus << ID >> kann man über die Tastenkombination Alt+F9 hin und her schalten.

Wenn man sich im ausführlichen Modus befindet, dann kann man die doppelten geschweiften Klammern auch mit Strg+F9 erzeugen und dann DOCVARIABLE hineinschreiben.

Man sollte nie die geschweiften Klammern als geschweifte Klammern {} schreiben, denn dies erkennt Word nicht an.

Von jetzt an gibt es verschiedene Weg, um auf Informationen aus der ClassiX-Datenbank zuzugreifen. Beim Drucken wird immer mindestens ein Objekt an Word übergeben. Somit kann man über einen Zugriffsausdruck auf alle Informationen dieses Objektes und der Objekte, die mit dem Ausgangsobjekt verbunden sind, zuzugreifen.

Beispiel:
Beim Drucken eines Auftrages soll die Auftragsnummer ausgeben werden.
{ DOCVARIABLE uniqueID }
Nun soll auch noch der Projektnamen ausdrucken werden.
{ DOCVARIABLE costObjectivePointer.shortName }

Über diese Methode können nicht nur einfache Text oder Zahlwerte ausgegeben werden, sondern auch Word- Texte, wie sie zum Beispiel bei Konditions- und Verkaufsartikelbeschreibungen verwendet werden. Wordobjekte werden immer über einen Zugriffsausdruck erreicht, der auf mlWordDoc endet. Genau wie Mehrsprachige Texte, die über mlDescription erreicht werden, wird jeweils die für das Dokument gültige Sprache zurückgegeben und an der Stelle des Feldes eingefügt.

Beispiel:
Drucken einer Verkaufsartikelbeschreibung aus einem Angebot heraus.
{ DOCVARIABLE salesItem.mlWordDoc }
Drucken des mehrsprachigen Artikeltextes in einer Bestellposition
{ DOCVARIABLE itemPointer.mlDescription }

Eine zweite Möglichkeit ist es in ClassiX auf verwendete Variablen zuzugreifen. Zum Beispiel gibt es Variablen, die immer das gleiche beschreiben. cyberEnterprise hält immer das Objekt des angemeldeten Mandanten, user repräsentiert immer den angemeldeten Benutzer und printObject ist immer das Objekt, welches gerade gedruckt wird. Hinzu kommen Variablen, die nur manchmal benutzt werden. Zum Beispiel kann man beim Drucken einer Bestellung auf die Variable tmpCondition zurückgreifen, um Informationen aus der Kondition auszulesen, welche gerade gedruckt werden.

Beispiele:
Im Angebotsanschreiben wird automatisch der Mandant angegeben.

Mit freundlichen Grüßen
{ DOCVARIABLE var(cyberEnterprise).partner.name }
Außerdem könnte man die Initialen des angemeldeten Benutzers drucken.
{ DOCVARIABLE var(user).uniqueID }

Bei diesen zwei Methoden stößt man allerdings auf seine Grenzen, wenn man die Werte einer Collection #04 ausgeben möchte oder man komplizierte Zugriffsausdrücke hat, die sich in Word nicht darstellen lassen. Hierfür bietet ClassiX die Möglichkeit direkt auf in den Modulen definierte Makros zuzugreifen. Über den Feldnamen call (Makronamen) wird das zu druckende Objekt an das Makro übergeben und der sich dahinter verbergende Code ausgeführt. Wichtig ist, dass das Makro auch in einem der am Druck beteiligten Module definiert wird. Ein Wert muss immer zurückgegeben werden, in der Regel sollte dies ein String sein.

Beispiele:
Beim Drucken eines Angebotes soll die Artikelnummer gedruckt werden. Handelt es sich beim Artikel um ein Variantenteil, so soll die Nummer durch den Text "ACHTUNG!" ersetzt werden.
 

{ DOCVARIABLE call(PrintItemNumber)}
     -> tmp
     tmp Copy(salesItem.uniqueID) Integer Dup if
    {
        String return
    }
    Else
    {
        Drop “ACHTUNG!” return
}
;

In Zusammenspiel mit den bisher vorgestellten Methoden auf Informationen zuzugreifen, gibt es auch noch die Möglichkeit die ClassiX- Basismethoden zu nutzen, welche das zu druckende Objekt mit sich bringt.

Beispiele:
Beim Drucken einer Angebotsposition soll auf Daten aus dem Angebotskopf zugegriffen werden.

{ DOCVARIABLE TopTransaction().uniqueID }

In diesem Beispiel macht man sich zu nutzen, dass das Objekt der Angebotsposition die Methode TopTransaction besitzt, welche das Objekt des Angebotskopfes zurückliefert und über jenes man dann auf die ID zurückgreifen kann.

Beim Aufruf von Methoden bei denen Parameter mit Anführungszeichen geschrieben werden,  müssen diese durch Hochkommas ersetzt werden.

Beispiele:
Beim Drucken einer des Lagerplatzes über eine Dimension("CX_STOCK_SPACE").

{ DOCVARIABLE stockSpaceItemAccount.Dimension('CX_STOCK_SPACE').uniqueID }
 

Es können auch InstantView-Proceduren aus dem Dokument, Modul oder Provider aufgerufen werden. Diese müssen wie sonst auch mit einem "call()" in den Zugriffspfad aufgerufen werden.

Beispiele:
Hier wird der Name des Benutzers in eine XML-Format konvertiert .

{ DOCVARIABLE var(user).Speech(0,0,8).call(webService::XMLEncode) }
 

In Zusammenhang mit den Dokumentvariablen können auch noch weiter Feld-Funktionen von Word benutzt werden. Eine der wichtigsten ist hierbei die IF- Bedingung. Diese Verzweigungsmöglichkeit ist immer nach folgendem Schema aufgebaut.

 { IF Bedingung „Anweisung für wahr“ „Anweisung für falsch“ }

Auch in diesen Feldern ist es möglich über die DocVariablen auf Informationen zuzugreifen. Wichtig ist es in den Bedingungen doppelte Hochkommata zu verwenden. Aber nicht nur IF-Bedingungen sondern auch Formelausdrücke, etc. können verwendet werden.

Beispiel:
In einem Angebot soll der technische Sachbearbeiter gedruckt werden. Ist dieser nicht angegeben, so soll der Kaufmännische ausgegeben werden.

{ IF “{ DOCVARIABLE technical.personInCharge.name }“ = “ “ “{ DOCVARIABLE personInCharge.name }” “{ DOCVARIABLE technical.personInCharge.name }” }

Eine weitere Nutzungsmöglichkeit von IF-Bedingungen ist die, dass man über sie unnötige Leerzeilen vermeiden kann. Dies zeigt folgendes Beispiel.

Beispiel:
{ IF “{ DOCVARIABLE technical.personInCharge.name }“ = “ “ “” “¶
{ DOCVARIABLE technical.personInCharge.name }” }{ IF “{
DOCVARIABLE personInCharge.name } “ = “ “ “” “¶
{ DOCVARIABLE personInCharge.name }” }

Hier wird in der ersten Bedingung der technische Sachbearbeiter gedruckt. Dabei wird zuvor nur die Zeile umgebrochen, wenn er auch wirklich vorhanden ist. Gleiches mit den kaufmännischen Sachbearbeiter. Ist er nicht vorhanden, so befinden wir uns nach wie vor in der Zeile, in der auch der technische SB gedruckt wurde. Andernfalls wird in der nächsten Zeile ausgegeben.

Standardmäßig werden nur die DOCVARIABLEn direkt in ClassiX ausgewertet und die anderen Felder werden vom verwendeten Textverarbeitungsprogramm wie Microsoft Word verarbeitet. Nicht alle Textverarbeitungsprogramme unterstützen jedoch alle Felder, weshalb über die Umgebungsvariable CX_WORD_XML_MERGE_MODE (235443) gesteuert werde kann, ob neben dem DOCVARIABLE-Feld auch die IF-, COMPARE-, =AND -und =OR-Felder vor dem Druck bereits von ClassiX ausgewertet werden sollen. Damit können diese Felder auch in den Dokumenten verwendet werden, wenn das Textverarbeitungsprogramm diese Felder nicht, oder nur stark eingeschränkt, unterstützt. LibreOffice beispielsweise unterstützt bei den IF-Feldern keine Berücksichtigung der Formatierung im Ergebnis. Da die direkte Auswertung der IF-Felder in ClassiX jedoch etwas begrenzter als die Auswertung von Microsoft Word ist (siehe CX_WORD_XML::Merge), wird empfohlen den Mergemodus nur dann zu verändern, wenn die vorzeitige Auswertung der Felder benötigt wird.

5. Häufige Probleme und Fragen

IF-Bedingungen werden von Word nicht richtig interpretiert

 

Hier kann es helfen die Bedingungsblöcke, welche miteinander verglichen werden sollen, in Anführungszeichen zu setzen. Manchmal ist dies sogar zwingend erforderlich. Soll ein Bedingungsausdruck mit NICHTS verglichen werden, so muss zwischen den Anführungszeichen ein Leerzeichen eingefügt werden.
{ IF „AUSDRUCK“ = “ “ ..... }
   
Word bricht beim Drucken mit Fehlermeldung ab

 

bei der alten Druckmethode können Zellen einer Tabelle nicht vertikal verbunden werden.
 

Änderungen nicht möglich

   

 

Es kann ein Syntaxfehler in den Dokumentvariablen geben. Um den fehlerhaften Dokumenten zu finden, kann man den Titel des Druckfensters benutzen.
   

 

Es gibt zu viele Worddokumente im entsprechenden TEMP-Ordner, welche von Word selbst angelegt wurden. Zur Behebung sollte man diese einfach löschen.
   
Textblöcke sehen im Ausdruck anders aus als in ClassiX

 

Man sollte überprüfen, ob der Dokumentenbaustein und die eventuell beteiligten Worddokumente die gleiche Formatvorlagen haben (siehe Abschnitt 1.2)
   

 

6. Tipps und Tricks

  • Tabellen ohne Ränder helfen bei der Positionierung von Texten, Listenköpfen und Listen. Zur Bearbeitung des Inhaltes dieser Tabellen können die Ränder als Hilfslinien angezeigt werden. (Word 2013: In der Menü-Leiste ist bei einer Tabelle der Menü-Punkt "Tabellentools" vorhanden und farbig markiert. Wählt man den Unterpunkt "Layout" kann man dort auf der linken Seite die Funktion "Gitternetzlinien anzeigen" aktivieren)
     
  • Bei Logos sollte darauf geachtet werden, dass diese die Formatierung "Mit Text in Zeile" haben. Auch sollten sich Logos in einer Tabelle ohne Ränder befinden. Allerdings wird der Kontext-Menü-Punkt zum Ändern der Formatierung nur angeboten, wenn sich das Logo ausserhalb der Tabelle befindet.
    Grafik Format Mit Tetx In Zeile

 

 


1 OLE ("Object Linking and Embedding“, deutsch: „Verknüpfen und Einbetten von Objekten“) ist als ein von Microsoft entwickelter Standard für zusammengesetzte Dokumente bekannt geworden, der auf der COM-Spezifikation basiert. COM ist die Abkürzung für „Component Object Model“ (deutsch: „allgemeines Objektmodell“).

2 Felder innerhalb eines Fenster

3 Felder werden als Platzhalter für sich ändernde Daten in einem Dokument oder zum Erstellen von Serienbriefen und Etiketten in Seriendruckdokumenten verwendet

4 Sammlung von Objekten in ClassiX, die an einen Zugriffsausdruck hängen