Der Chatbot hilft Ihnen bei Fragen rund um das Produkt und die Anpassbarkeit der Software. Wie bei allen AI-generierten Daten sollten die Antworten bei kritischen Informationen verifiziert werden. Nehmen Sie dafür gerne Kontakt mit uns auf. Weitere Informationen zur Verarbeitung der Chat-Daten bieten wir auf der Datenschutzseite.
Die besten Antworten liefert der Chatbot, wenn Ihr Input möglichst viele Informationen enthält. Zum Beispiel:
«Welche Apps stehen im Vertec Cloud Abo zur Verfügung?»
Dieser Artikel behandelt die Office-generierten Legacy Excel-Berichte. Wir empfehlen, stattdessen die Office-Berichte (Word, Excel, PDF) zu verwenden, welche auch im Excel-Format ausgegeben werden können.
Legacy Excel-Berichte werden in Vertec wie die Legacy Word-Berichte als Legacy Office-Berichte registriert. Anhand der Datei-Endung wird festgestellt, ob Excel oder Word zum Ausführen des Berichts gestartet werden soll.
Anders als bei Legacy Word-Berichten gibt es für Legacy Excel-Berichte keinen Vertec-eigenen, eingebauten Berichtsgenerator. Ein Legacy 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 Legacy 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 Legacy Excel-Report ausgeführt wird. Diese Variable wird verwendet anstelle von Vertec.argobject und funktioniert bei Legacy 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
Lang laufende Legacy Excel-Reports
Bei lange laufenden Legacy 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
OCL in Kommentarfeldern evaluieren
Auch in einem Legacy Excel-Report können - wie in Legacy Word-Berichten - OCL-Expressions in Kommentarfeldern evaluiert werden. Hier muss das allerdings von Hand geschehen.
In den Zellen, in denen etwas berechnet werden soll, muss ein Kommentar hinzugefügt und mit der OCL-Expression versehen werden. Der Autor, der von Excel automatisch gesetzt wird, muss von Hand entfernt werden. Das ist wichtig, denn der folgende Code kann nur mit reinem OCL umgehen.
Ein Kommentar sieht dann beispielsweise so aus:
Im folgenden Beispiel ist der Code direkt in die Funktion DoReport2 eingebaut:
Function DoReport2(vertec As Object, rootObj As Object, optargObj As Object, wrkbook As Workbook) As Boolean
'---"Generischer" Excel-Report Generator, evaluiert Kommentare und füllt einzelne Zellen.
Dim Sheet As Worksheet
Dim Comment As Comment
Dim OCL As String
Set Sheet = wrkbook.ActiveSheet
'---Fahre durch alle Kommentare durch und evaluiere das OCL.
' ACHTUNG: die Kommentar müssen OHNE Autor sein, nur reines OCL.
On Error Resume Next
For Each Comment In Sheet.Comments
Comment.Parent.Value = rootObj.eval(Comment.Text)
Comment.Delete
If Err <> 0 Then
MsgBox Err.Description
Err = 0
End If
Next
DoReport2 = True
End Function