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 bisherige 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.
Fehlermeldung bei lang laufenden 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
| erstellt: | 02.01.2006 |
|---|---|
| geändert: | 15.12.2008 |
