/ Dienstleistungen / Support / Knowledge Base / Handbuch / Reporting / Office-Berichte / Word / Variablen in Header und Footer von Word füllen

Variablen in Header und Footer von Word füllen

Variablen in Header und Footer von Word via Makrocode füllen

In Kopfzeilen und Fusszeilen von Word kann kein ocl ausgewertet werden, weil keine Kommentare eingefügt werden können. Falls man doch Werte aus Vertec einsetzten möchte, gibt es folgenden Umweg über den Makrocode (siehe Abschnitt Event Makros im Artikel Wordberichte).

Variable in Header oder Footer einfügen

Als Variable wird ein Text eingefügt, der später über den Code eindeutig wieder zu finden ist. Im Beispiel unten lautet der Text xProjektcode:

fusszeile.gif

Makrocode

Das Beispiel möchte auf einer Rechnung den Projektcode in der Kopf- bzw. Fusszeile anzeigen. Damit das funktioniert, muss auf dieser Rechnungsvorlage ein Makro erstellt werden mit dem Namen BeforeReport2 oder AfterReport2. Makros mit solchem Namen werden automatisch ausgelöst, wenn ein Report aus Vertec heraus aufgerufen wird (siehe Abschnitt Event Makros im Artikel Wordberichte).

Der Code, um den Text in der Kopf- und Fusszeile zu ersetzen lautet für dieses Beispiel wie folgt:

Public sub AfterReport2(vertec As Object, dok As Object)

Dim Rechnung As IVtcObject

Dim Projekt As IVtcObject

Set Rechnung = Vertec.ArgObject

Set Projekt = Rechnung.Eval("projekt")

'Setzte den Wert im Header

dok.Sections(1).Headers (wdHeaderFooterPrimary).Range.Find.Execute FindText:="xProjektcode", ReplaceWith:=Projekt.Member("code"), Replace:=wdReplaceAll

'Setzte den Wert im Footer

dok.Sections(1).Footers (wdHeaderFooterPrimary).Range.Find.Execute FindText:="xProjektcode", ReplaceWith:=Projekt.Member("code"), Replace:=wdReplaceAll

End Sub

Zeilenumbrüche in Word-Berichten per VBA einfügen

In Word-Berichten kann ein Zeilenumbruch via ASCII-Code chr(13) + chr(10) eingefügt werden:

txt1 = "Erste Zeile" & Chr(13) & Chr(10) & "zweite Zeile"
ActiveDocument.Range.Find.Execute FindText:="Text1", ReplaceWith:= txt1, Replace:=wdReplaceAll

Befindet sich die zu ersetzende Variable in einer Tabelle, funktioniert das nicht. In diesem Fall muss der Zeilenumbruch über ^p eingefügt eingefügt werden:

txt2 = "Erste Zeile" & "^p" & "zweite Zeile"
ActiveDocument.Range.Find.Execute FindText:="Text2", ReplaceWith:=txt2, Replace:=wdReplaceAll
erstellt: 19.10.2006
geändert: 30.12.2011: Abschnitt über Zeilenumbrüche eingefügt
Produktlinien: Standard, Expert
Module: Leistung & CRM
abgelegt unter:
   

kontakt

Suche in Knowledge Base
Hotline

Vertec Hotline: +41 43 444 60 05
Mo - Fr: 9-12 / 14-17 Uhr
Netviewer starten...
Weitere Informationen zu Netviewer.

Haben Sie eine technische Frage zu einem Vertec-Produkt?
zum Anfrageformular...

Unsere Kunden über unsere Support-Leistungen

„Vertec bietet einen hervorragenden Support beim Weiterausbau und bei der Parametrisierung und auch die Hotline-Unterstützung verdient das Prädikat top.“

Thomas Marx, Egeli Informatik AG (40 User)


„Der hervorragende Support, die Hotline sowie eine permanente Weiterentwicklung des Produkts garantieren uns einen hohen Investitionsschutz.“

Moreno Bellido , Walder Wyss & Partner AG, (156 User)