Excel-Bericht

Excel-Berichte werden in Vertec wie die Word-Berichte als Office-Berichte registriert. Anhand der Datei-Endung wird festgestellt, ob Excel oder Word zum Ausführen des Berichts gestartet werden soll.

Anders als bei Word-Berichten gibt es für Excel-Berichte keinen Vertec-eigenen, eingebauten Berichtsgenerator. Ein Excel-Bericht muss ein speziell für den Bericht geschriebenes Makro namens DoReport2 enthalten. Dieses Makro wird beim Ausführen des Berichts aufgerufen und ist zuständig für das Einsetzen der Berichtdaten.

Die Syntax lautet wie folgt:

Function DoReport2(vertec as Object, rootObj as Object, optargObj as Object, wrkbook as Workbook) as Boolean

Dieses Makro erlaubt die Übergabe von Vertec und Argumentobjekten sowie des Workbooks. Damit funktioniert das Ausführen von Excel Reports auch korrekt, wenn mehrere Vertec Instanzen laufen oder zwischen verschiedenen Workbooks umgeschaltet wird.

Argumente

vertec

Zugriff auf das Vertec, von dem aus der Report gestartet wurde.

rootObj

Das Objekt, auf welchem der Excel-Report ausgeführt wird. Diese Variable wird verwendet anstelle von Vertec.argobject und funktioniert bei Excel-Reports auch bei Ausführung via Rechtsklick.

optargObj

Die optionale Adresse, welche beim Drucken-Dialog temporär angegeben werden kann. Die Expression optargObj.adresstext zum Beispiel liefert in dem Fall die gewünschte Druckadresse.

wrkbook

Das Excel Woorkbook, in das geschrieben wird.

Der Rückgabewert der Funktion muss auf True gesetzt werden, sonst wird das Excel Dokument nicht angezeigt.

Function DoReport2(vertec as Object, rootObj as Object, optargObj as Object, wrkbook as Workbook) as Boolean

DoReport2 = True

End Function

Versionen

Das beschriebene Event Makros ist eine neuere Version des bisherigen Makros DoReport und seit Version 5.4.0 vorhanden.

Die vorherige Funktion DoReport wird immer noch unterstützt. Ältere Reports laufen also wie gewohnt weiter. Wir empfehlen jedoch, bei neuen Excel-Reports die Funktion DoReport2 zu verwenden.

Für Informationen über das Erstellen des Makro-Codes empfehlen wir den Artikel über COM /ActiveX.

Lang laufende Excel-Reports

Bei lange laufenden Excel-Reports kann es nach einer gewissen Zeit zu folgender Meldung kommen:

Microsoft Excel wartet auf die Beendigung einer OLE-Aktion in einer anderen Anwendung

Das lässt sich beheben, indem im Code am Anfang:

Application.DisplayAlerts = False

eingefügt wird.

Wichtig ist, dass das am Ende der Funktion wieder ausgeschaltet wird:

Application.DisplayAlerts = True


02.01.2006 | 18.10.2012: Links erneuert.
Produktlinien: Standard, Expert
Module: Leistung & CRM