Direkt zum Inhalt | Direkt zur Navigation

 

Word-Berichte

Arbeiten mit Word-Berichten

Der Word-Report-Mechanismus von Vertec ermöglicht es, benutzerdefinierte Berichte in MS Word zu entwerfen und direkt aus Vertec auszuführen. Die Möglichkeiten gehen dabei weit über die in Word eingebauten Serienbrief-Funktionalitäten heraus.

Word-Reports basieren auf einem speziellen VisualBasic Makro in der Word Standard-Vorlage, welches bestimmte Elemente in einer Berichtvorlage interpretiert und via COM bzw. ActiveX auf das Vertec Objektsystem zugreift.

Installieren der Word-Report-Makrovorlage

Zum Ausführen von Vertec Word-Berichten wird in Word spezieller Makrocode benötigt. Diese Makros befinden sich im Vorlagendokument VertecReport.dot.

Dieses Vorlagendokument wird standardmässig im Vertec Installationsverzeichnis auf dem Server abgelegt. Vertec lädt diese Makrodatei bei Bedarf explizit als Word Add-in, daher ist auch keine Signatur notwendig.

Falls Ihre Vertec Installation mit lokalen Programmfiles auf den Clients arbeitet und kein Netzwerkzugriff auf das Serververzeichnis besteht, kann VertecReport.dot auch im Vorlagenverzeichnis für Word-Berichte abgelegt werden. Den korrekten Pfad finden Sie in Vertec unter Optionen > Systemeinstellungen Allgemein; Vorlagenpfad für Word-Berichte.

Aufbau von Word Report-Vorlagen

Ein Word-Report basiert immer auf einer Dokumentvorlage (.dot) in Word. Diese Report-Vorlage enthält neben normalem Text spezielle Element, die vom Makro "DoReport" ausgewertet werden.

Bänder

Bänder sind die Grundlagen von Word-Reports. Alles, was gedruckt wird, befindet sich in einem Band.

Ein Band wird in der Report-Vorlage durch eine Textmarke dargestellt. Der Name der Textmarke ist der Band-Name.

Erstellen Sie dort, wo Sie ein Band erstellen möchten, einen Beispiel-Text im gewünschten Layout (z.B. eine Tabelle, Zeilen mit Tab etc.). Markieren Sie dann diesen Text und klicken Sie auf "Einfügen - Textmarke...". Es öffnet sich das Fenster, in dem Sie den Namen der Textmarke angeben können. Es empfiehlt sich, dabei einen Namen zu wählen, bei dem erkennbar ist, um was es sich handelt (also nicht Band1, Band2 etc.). Das erleichtert später das Anpassen der Bänder und der Ausdrücke in den Expressions.

Die Bänder können frei verschachtelt werden. Jede Report-Vorlage muss aber ein Standard-Band enthalten. Das ist ein Band, das alles andere einschliesst. Sie können also, nachdem Sie die Vorlage erstellt haben, alles markieren und mit einer weiteren Textmarke umschliessen. Der Namen dieser Textmarke spielt keine Rolle.

Ein Band kann bei der Ausführung eines Reports ein- oder mehrmals gedruckt werden. Wird also ein Band auf einer Liste ausgeführt, wird das Band so viel mal gedruckt, wie sich Elemente in der Liste befinden.

Textmarken, die nicht gelöscht werden

Wenn der Name der Textmarke mit trg beginnt, wird die betreffende Textmarke vom Vertec Report-Mechanismus nicht gelöscht. Falls Sie also Textmarken in einem Vertec Word-Report einfügen möchten, die bestehen bleiben sollen, dann nennen Sie die Textmarke "trg.....".

Felder

Ein Feld ist ein durch einen Kommentar markierter Text innerhalb eines Bandes, der beim Ausführen des Reports durch Daten aus Vertec ersetzt wird.

Um ein solches Feld zu erstellen, markieren Sie einen beliebigen Text, an dessen Stelle später die Daten aus Vertec eingefügt werden sollen, und klicken Sie auf "Einfügen - Kommentar". Der dazugehörige Kommentar muss eine an der entsprechenden Stelle gültige OCL-Expression enthalten. Das erste Zeichen des Kommentars (nach dem Verfasserkürzel) muss immer ein Leerzeichen sein.

Um ein Feld zu bearbeiten, klicken Sie mit der rechten Maustaste darauf und wählen Sie "Kommentar bearbeiten".

Beispiel von Feldern mit zugehörigem Kommentar in Word:

wordkommentare

Band Expressions

Band Expressions sind ebenfalls durch Kommentare markierte Textstellen innerhalb eines Bandes. Sie unterscheiden sich von Feldern dadurch, dass der markierte Text immer mit dem Namen des Bandes beginnt, auf das sich die Expression bezieht. Es sind folgende Band Expressions möglich (bndXXX bedeutet dabei der Name des Bandes):

  • bndXXXExp: Band Hauptexpression. Falls angegeben, wird der Wert des Bandes aufgrund dieser Expression berechnet. Die Expression bezieht sich auf das Root-Objekt des Reports oder auf den Wert des nächst äusseren Bandes.

Falls das Ergebnis dieser Expression einer Liste entspricht, wird das Band für jeden Eintrag der Liste dupliziert.

  • bndXXXCond: Band Conditional Expression. Falls angegeben, wird diese Expression bei jedem Auftreten des Bandes ausgewertet (d.h. falls das Band innerhalb einer Liste dupliziert wird, für jedes Objekt). Das Ergebnis der Expression muss ein boolescher Wert sein (Wahr/Falsch). In Abhängigkeit dieses Ergebnisses wird das Band gedruckt oder nicht.

Event Makros

Im Word Report Mechanismus gibt es die Möglichkeit, VB Makros, die vor und nach dem eigentlichen Report aufgerufen werden, zu erstellen.

Makros mit folgenden Namen werden berücksichtigt:

BeforeReport2

Wird vom Report Mechanismus aufgerufen, bevor die Daten aus Vertec im Report eingesetzt werden. Das bietet zum Beispiel die Möglichkeit, einen Dialog anzuzeigen, der eine bestimmte Vorauswahl trifft.

Die Deklaration ist wie folgt:

sub BeforeReport2(vertec As Object, dok As Object)

end sub

Der Zugriff auf Vertec wird mit der Variable vertec übergeben. Es kann auf vertec also direkt zugegriffen werden. Beispiel:

sub BeforeReport2(vertec As Object, dok As Object)
dim projektliste as IVtcObjectList

set projektliste = Vertec.eval("projekt->select(aktiv)")

end sub

Der Word-Report wird mit der Variable dok übergeben.

AfterReport2

Dieses Makro wird aufgerufen, nachdem die Daten aus Vertec im Report eingesetzt worden sind.

Die Deklaration ist wie folgt:

sub AfterReport2(vertec As Object, dok As Object)

end sub

Der Zugriff auf Vertec wird mit der Variable vertec übergeben.

Der Word-Report wird mit der Variable dok übergeben.

AfterReport3

Ab Version 5.5. Dieses Word-Report Eventmakro ermöglicht den Zugriff auf die dazugehörige Aktivität.  Dabei handelt es sich um die Aktivität, die erzeugt wird, um den Report mit dem Objekt in Vertec zu verknüpfen.

Dieses Makro wird aufgerufen, nachdem die Daten aus Vertec im Report eingesetzt worden sind.

Die Deklaration ist wie folgt:

sub AfterReport3(vertec as Object, dok as Object, root as Object, optarg as Object, akt as Object)

end sub

Argumente:

  • vertec: Zugriff auf Vertec
  • dok: das erstellte Word Dokument
  • root: das Vertec Objekt, auf dem der Report ausgeführt wurde
  • optarg: das optionale Vertec objekt (Adresse)
  • akt: die erstellte Aktivität

optarg und akt können auch leer sein, in VB entspricht das "nothing". Das Makro wird aufgerufen, nachdem die Daten aus Vertec im Report eingesetzt worden sind.

Die übergebene Aktivität hat bereits den vorgesehenen Pfad gesetzt. Wird der Pfad der Aktivität im Eventmakro verändert, wirkt sich das auf den Speicherpfad des Dokuments aus.

Die Aktivität wird dafür vor dem Ausführen des Reports bereits erstellt. Tritt dabei irgendwo ein Fehler auf, wird die Aktivität wieder gelöscht.

Lokale OCL Variablen in Wordreports

Ab Version 5.3.0.29 können in Wordreports lokale OCL Variablen verwendet werden. Mittels einer Var-Expression kann eine Variable erstellt und später im Report wieder verwendet werden. Das verhindert vor allem das erneute Berechnen von Werten, die mehrmals verwendet werden.

Var-Expressions sind Kommentare auf Texten der Form

<bandname><varname>

wobei varname mit "var" beginnen muss.

Beispiel

In einem Rechnungsreport sollen Leistungen nach Tätigkeit gruppiert werden. Dafür werden zuerst die Tätigkeiten eruiert und dann pro Tätigkeit eine Liste der Leistungen ausgegeben. Das heisst, die Leistungen müssen mit einer Expression in der Art bndMaster.leistungen->select(typ=self) gefiltert werden. Bei den Stunden und Honoraren musste dann pro Zeile jeweils wieder die ganze Liste aufgerufen werden (z.B. bndMaster.leistungen->select(typ=self).wertext->sum). Neu kann man die Liste in die Variable laden und dann mit dieser weiterarbeiten (z.B. varLeistList.wertext->sum).

bandvariablen.gif

Zugriff via COM

Die entsprechende Methode auf IvtcSession heisst

EvalToVariable(root as IVtcObject, expression as String, varname as String)

Damit können auch im Code, zum Beispiel in einem Excel-Report, Werte in Variablen geladen werden, die später in OCL-Expressions verwendet werden können. Insbesondere können auch Ergebnisse von Expressions, welche nur durch die Expression entstehen und nicht in Vertec vorhanden sind, in eine Variable geschrieben werden (beispielsweise das Ergebnis einer Summierung, ein Datumswert mittels encodedate etc.)

Zum Beispiel sollen in einem Excel-Report die Leistungen ab einem bestimmten Zeitpunkt angezeigt werden. Statt nun die Leistungen in der Art "offeneLeistungen->select(datum >=" & encodeDate(2008, 08, 01) & ") " zusammenzusuchen, kann zuerst eine Variable gesetzt und dann verwendet werden:

Vertec.EvalToVariable(Vertec.argobject, "encodeDate(2008,08,01)", "varVon")

und dann in der Expression:

offeneLeistungen->select(datum >= varVon)

Registrierung von Office-Reports in Vertec

Damit ein Office-Report in Vertec ausgeführt werden kann, muss er registriert werden. Das Vorgehen ist im Artikel Reports registrieren detailliert beschrieben.

erstellt: 26.06.2003
geändert: 23.04.2010
  

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 (46 User)


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

Moreno Bellido, Walder Wyss (170 User)