Aufgrund dem Zusammenspiel von ClassiX® mit Microsoft-Word OLE-Objekten können viele Eigenheiten bei der Erstellung von Objekten entstehen. Auf dieser Seite sind die bekannten Eigenheiten und deren Möglichkeit diese zu umgehen aufgeführt.
Eine der Möglichkeiten für eine fehlerhafte Darstellung von Dokumentbausteinen ist ein "harter Zeilenumbruch" in einem Dynamischen Datenfeld. Diese lassen sich im Wordeditor in der Formatierungsansicht (¶) schnell finden. Der Zeilenumbruch sollte entweder ganz entfernt werden oder durch einen weichen Zeilenumbruch ( Shift + Return ) ersetzt werden.
Microsoft-Word spielt manchmal gemeine Streiche mit Usern und Entwicklern. In der Entwicklungsphase von ClassiX® ist das Phänomen vorgekommen, dass eine DocVariable in einem OLE-Baustein ein bestimmtes Format zugewiesen bekommt (z. B. Arial, Fett, Kursiv) und dann später beim Ausdruck nicht korrekt angezeigt wird.
In diesem Fall hilft es leider nur den gesamten Block (bzw. Tabellenspalte) in der die Variable ist neu zu formatieren. Am besten wird dazu der Block markiert, und auf Normal-Format ( Shift + Strg + N ) gesetzt. Anschließend kann die Formatierung wieder eingestellt werden.
Word meldet beim Bearbeiten des OLE-Bausteins das die Dokumentenvariable nicht verfügbar ist:
Dieses könnte im einfachsten Fall an einem Schreibfehler in der Dokumentenvariablen sein. Um die Schreibweise der Variablen zu überprüfen, schalten Sie in den Feldfunktionsmodus (Alt + F9). Ist die Variable korrekt geschrieben könnte es sich noch um ein Aktualisierungsproblem handeln. Verlassen Sie den Word-Editor und rufen sie Ihn erneut auf.
Die benötigten DocVariablen lassen sich über das Monitor-Window
identifizieren. Gehen Sie dazu mit dem Mauszeiger über das einzubindende
Element (z. B. die Anschrift des Kunden in der Angebotsmaske) und drücken Sie
die rechte Maustaste. Das Monitor-Window öffnet sich und in der Titelleiste
steht bereits der Name des gewünschten Objektes (in diesem Fall: "address").
Mit dem InstantView®-Befehl "GetObject" bekommen Sie das gewünschte
Objekt auf den Stack und mit dem Aufruf: "SendMsg(INSPECT_OBJECT)" lässt
sich das Objekt im Objektinspector betrachten.
Im Objektinspector lassen sich jetzt die Attribute des ausgewählten Objektes Betrachten. Wollen wir z. B. die Firmensitz des Kunden als DocVariable in einen DokumentBaustein einfügen notieren wir das in der DocVariable wie folgt: (vgl. Einfügen von "Dynamischen Datenfeldern")
Um die Bearbeitung in der Belegerstellung ein wenig zu erleichtern sind an dieser Stelle einige der wichtigsten DocVariablen für die Erstellung von Belegen aufgeführt.
"var": Über die Funktion: "var()"
kann auf die InstantView®-Variablen zugegriffen werden. (Bsp:
var(cyberEnterprise).uniqueID="000" ermittelt den aktuellen
Mandanten) Siehe auch: "Zugriffsausdruck
("var")"
Um die InstantView®-Variablen im Monitor-Window
zu lokalisieren kann das Objekt "cyberEnterprise" auf den Stack
gelegt werden. Von hier aus kann dann mit der Funktion "Get()"
oder "Copy()" auf die
Variablen zugegriffen werden. Oder über: "SendMsg(INSPECT_OBJECT)"
das Objekt im Objektinspector betrachtet werden.
Analog dazu können sie auch aus dem Druckdialog das Monitor-Window aufrufen
und sich mit printObject das gesamte Dokument auf den Stack legen.
Dieses lässt sich jetzt wieder mit dem Objektinspector (SendMsg(INSPECT_OBJECT))
genauer betrachten und nach gesuchten Variablennamen durchforsten.
"call": Mit Hilfe der speziellen Funktion call(Makroname)
kann auch auf InstantView®-Makros, welche einen Rückgabewert liefern,
zugegriffen werden um sie dann als DocVariable zu nutzen. Liefert das Makro ein
Objekt als Rückgabewert, kann über die herkömmliche Art auch auf die
Zugriffsausdrücke zurückgegriffen werden. Bsp: call(Makroname).y
Liste mit häufig genutzten InstantView®-Variablen
| var(cyberEnterprise).uniqueID | Auswahl Mandanten |
| Die UniqueID´s für die vorhandenen Mandanten können über den Menüpunkt: System->Mandanten angesehen werden. (Siehe auch: "var") | |
| var(printObject).uniqueID | Transaktionsnummer |
| Die Transaktionsnummer ist die Identifikation des zugehörigen Vorgangs (Bsp: Lieferscheinnummer, Angebotsnummer etc.) | |
| TopTransaction().date | Transaktionsdatum |
| Transaktion von... | |
| CX_PARTNER.Speech(_,_,_) | Andrede zusammenstellen |
| Bei der Angabe: "Speech" handelt es sich um ein Klassenfunktion der Klasse CX_PARTNER. Sie erstellt mit Hilfe der übergebenen Parameter eine formatierte Ausgabe der Anrede. | |
| CX_BUSINESS_OBJECT.Address() | Adresse Einfügen |
| über Die Klassenfunktion .Address() der Klasse CX_BUISNESS_OBJECT wird Ein Addressobjekt (CX_STREET_ADDRESS od. CX_PO_BOX_ADDRESS) zurückgeliefert welches zahlreiche Attribute, wie City, ZipCode etc. zur Verfügung stellt. | |
| personInCharge | Transaktionsverantwortlicher (Sachbearbeiter) |
| diese Methode liefert eine Instanz der Klasse CX_PARTNER des Sachbearbeiters zurück. | |
| header.mlComment | Betreff (Überschrift) |
| diese Methode liefert einen String mit der Betreffzeile zurück | |
| main.mlComment | Hauptanschreiben |
| Der Inahalt des Anschreibens, welches für jede Transaktion manuell eingegeben werden kann. | |
| mlShortName | |
| call(OrderItemShortDescription) | Kurzbezeichnung für Artikel |
| (Siehe auch: "call") | |
| print.counter | Seitenzähler |
Speichert
die aktuell zu druckende Seite. Soll z. B. ein Dokumentbaustein nur auf
der ersten Seite gedruckt werden, kann der Baustein mit der Bedingung
"print.counter=1" versehen werden. |
Bei fast allen Bedingungen wird kontrolliert, ob ein Wert vorhanden ist oder nicht. Die Bedingung hierfür sieht dann wie folg aus:
{ IF { DOCVARIABLE uniqueID } <> " " "Anweisung für wahr“ "Anweisung für falsch“ }
In diesem Beispiel wird kontrolliert, ob das Datenfeld uniqueID ungleich (<>) leer ist. Hierbei ist zu beachten, dass leer in Word durch zwei doppelte Anführungsstriche dargestellt wird, zwischen denen sich ein Leerzeichen befindet. ( " " nicht "" )
Sollte die Bedingung trotzdem nicht erkannt werden, so ist auch die
Dokumentvariable, gegen die verglichen werden soll, in doppelte
Anführungsstriche gesetzt werden.
Ergebnis: { IF "{ DOCVARIABLE uniqueID }" <> " " "Anweisung für wahr“ "Anweisung für falsch“ }
Beim Ausdruck wurde ein Dokumentbaustein (z. B. die Kopfzeile) nicht mitgedruckt.
| { DOCVARIABLE uniqueID \* MERGEFORMAT } | { DOCVARIABLE call(OrderItemDescription) } |
{ DOCVARIABLE quantity.string(NF_DI |
ergibt im Ausdruck:
100.1 Duoblockbrenner SKVG mit mechanischer Verbundsteuerung
zur Verbrennung von Heizöl und Brenngas, im wesentlichen bestehend aus Drehzerstäuber, Ölarmaturen, Gasringbrenner, Mechanische Verbundsteuerung, Zündeinrichtung mit Armaturen, Flammenfühler1 Stück
Auszug aus Microsoft Visual-Basic Hilfe
Activate-Methode
Aktiviert ein angegebenes Objekt.
Syntax 1
Ausdruck.Activate(Wait)
Syntax 2
Ausdruck.Activate
Ausdruck Erforderlich. Ein Ausdruck, der ein Task-Objekt (Syntax 1) oder ein anderes Objekt (Syntax 2) zurückgibt. Um eine Liste der verfügbaren Objekte zu erhalten, klicken Sie auf
Betrifft.
Wait Optional Boolean. Nur Task-Objekt. True, um zu warten, bis der Benutzer Word aktiviert hat, bevor die Aufgabe aktiviert wird.
False, um die Aufgabe sofort zu aktivieren, auch wenn Word nicht aktiviert ist.
Auszug aus Microsoft Visual-Basic Hilfe
Range-Eigenschaft
Gibt ein Range-Objekt zurück, das den Teil eines Dokuments darstellt, der in dem angegebenen Objekt enthalten ist. Nur-Lese-Zugriff.
Weitere Informationen darüber, wie ein Bereich aus einem Dokument oder ein Formbereich aus einer Auflistung von Formen zurückgegeben wird, finden Sie bei der
Range-Methode.
Verwandte Themen