Inhalt
Was ist eine Formatvorlage?
In einer Formatvorlage werden Standardschrifttypen, wie "Standard", "Überschrift", "Text", etc., definiert. Dies geschieht zum Beispiel durch die Schriftart, Schriftgröße, Farbe oder Zeichenabstand. Beim Erstellen kann dann auf diese Typen zugegriffen werden, um den Text zu formatieren. Bei der Installation von Word wird auf jedem Rechner eine Standardvorlage (Normal.dot) installiert, welche je nach Geschmack angepasst werden kann. Bei JEDER Erstellung eines Worddokumentes wird diese Standardvorlage dem Dokument zugewiesen.
Warum setzt ClassiX® beim Anlegen eine Worddokumentes eine eigene Formatvorlage?
ClassiX® tut dies, um eine einheitliches Erscheinungsbild der Worddokumente zu erreichen. Nehmen wir an Benutzer A hat an seinem Rechner eine Voreinstellung der Schriftgröße auf 12 definiert und legt Artikelbeschreibungen an. Gleichzeitig werden aber Artikelbeschreibungen auch von Benutzer B angelegt, der lokal eine Voreinstellung von Schriftgröße 8 definiert hat. Werden beide Artikelbeschreibungen in eine Auftrag ausgedruckt, so wechselt die Schriftgröße permanent von 8 auf 12 und umgekehrt. Der Ausdruck sieht somit inkonsistent aus.
Beim Drucken entsteht aber eine weiteres Problem, da beim Kopieren von Worddokumenten bzw. dessen Inhalt nur der Text und die überdefinierten Formate übernommen werden, nicht aber die Formatvorlage. Somit können Texte beim Drucken ganz anders aussehen als im Original, wie folgendes Beispiel zeigt.
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“
Solange aber beide Worddokumente die gleiche Formatvorlage haben tritt dieses Problem nicht auf.
Wie weise ich einem Dokument eine Formatvorlage zu?
| oleObject - CX_WORD_DOCUMENT strDotPath - Pfad zur Formatvorlage |
oleObject Call(GetApplication) -> applicationClip "CX_WORD_DOT" SystemObject Call(GetEnvironment) -> strDotPath |
| Installieren der Formatvorlage | strDotPath applicationClip Call(GetAddIns) Call(Add) Drop applicationClip Call(Lock) |
| Es wird ein Flag gesetzt, damit sich das Worddokument mit der neuen Formatvorlage automatisch aktualisiert. | "-1" Integer oleObject Call(PutUpdateStylesOnOpen) |
| Zuweisen der neuen Formatvorlage | strDotPath oleObject Call(PutAttachedTemplate) |
| Das Gesetzte Flag wird wieder deaktiviert und der Pfad zur Formatvorlage gelöscht. (siehe Hinweise) | "0" Integer oleObject Call(PutUpdateStylesOnOpen) "" oleObject Call(PutAttachedTemplate) |
| Das Worddokument wird gespeichert, damit die geänderten Formatierungen nicht wieder verloren gehen. | oleObject Call(CX_Save) |
Hinweise für das Arbeiten der Formatvorlagen
Nachdem einem Worddokument die Formatvorlage zugewiesen wurde sollte der Pfad
zur Vorlage gelöscht und die Option "Formatvorlagen automatisch aktualisieren"
deaktiviert werden. Ursache ist, dass sonst bei jedem Öffnen eines
Worddokumentes auf die Formatvorlage zugegriffen wird. Sollte die Formatvorlage
unter dem angegeben Pfad nicht erreicht werden, so kann das Öffnen extrem
langsam dauern. (Bis zu 15 Sekunden, wenn der Pfad auf ein Netzwerkverzeichnis
verweist. "//servername/classix/projektname/system/classix.dot")
Das Drucken in einer Fremdwährung verläuft wie folgt. Zuerst wird der zu druckende Beleg gewrappt und an sich selber eingefügt. gleiches geschieht mit allen seinen Unterpositionen. Vor dem Drucken wird nun die Kalkulation erneut gestartet, allerdings nicht mit dem "richtigen Objekt" sondern mit dem Wrapper. Somit werden alle Werte, welche jetzt neu in der Fremdwährung berechnet werden, in den Wrapper geschrieben. Da beim Drucken ebenfalls der Wrapper in den PlugSpace gestellt wird, wird auf die neuen Werte zugegriffen.

Für den Fall das in einer Währung gedruckt werden, für die keine Währungstabelle angemeldet ist, so wird die Tabelle transient erstellt und per AddOverwriteRate über das Systemobjekt angemeldet.
3.1 Beispiele
Angebots- / Auftragsdruck
(Kopf)
| Information | Zugriffsausdruck | Kommentar | |
|---|---|---|---|
| Auftragsnummer | uniqueID | ||
| Datum | date | Erstelldatum | |
| Sachbearbeiter | Name: Telefon: Fax: Email: |
personInCharge.Speech(1,0,6) personInCharge.Access('CX_DESK_PHONE').uniqueID personInCharge.Fax().uniqueID personInCharge.Access('CX_E_MAIL').uniqueID |
Ausgabe als Vorname + Nachname |
| Anschrift | Firmenname: Ansprechpartner: Straße: Land: PLZ: Stadt: |
call(Addressee).Name(6) ordered.personInCharge.Speech(4,0,2) address.Location() address.call(CountryText) address.zipCode address.city |
|
| Betreff Anschreiben Fußtext |
header.mlComment oder header.mlWordDoc main.mlComment oder main.mlWordDoc footer.mlComment oder footer.mlWordDoc |
Je nach Art | |
| Liefertext | received.comment | ||
| RG - Hinweis | invoiced.comment | ||
| Lieferdatum | delivered.spanDate | ||
| Faktura Datum | invoiced.spanDate | ||
| Versanddatum | shipped.spanDate | ||
| Nettosumme | net.value | ||
| Summe | total.value |
(Position)
| Information | Zugriffsausdruck | Kommentar | |
|---|---|---|---|
| Nummer | uniqueID UniqueID() |
Nummer der Position Nummer der Position im Baum |
|
| Kurzbegriff (VK-Teil) | salesItem.mlShortName | ||
| Beschreibung (VK-Teil) | salemItem.mlDescription | ||
| Artikeltext auf der Pos. | salesItem.item.mlDescription oder salesItem.item.mlWordDoc | Je nach Beschreibungsart. (Die Information ist im Wrapper überschrieben) | |
| Menge | quantity | ||
| Basispreis | sales.pricePointer | ||
| Bruttopreis | total.pricePer | ||
| Nettopreis | netPrice | ||
| Nettowert | net.value | ||
| Lieferdatum | delivered.spanDate | ||
| Faktura Datum | invoiced.spanDate | ||
| Versanddatum | shipped.spanDate | ||
| Bereitstellungstermin | dispatched.spanDate |