Excel: OCL in Kommentarfeldern evaluieren

Auch in einem Excel-Report können - wie in 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:

oclinexcel.gif

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

Beispieldatei

Dies ist die Datei zum obigen Beispiel:

Excelgenerator.xlt

Sie kann auf einem einzelnen Projekt ausgeführt werden (Menü Drucken > Vorlage auswählen...).


04.06.2009 | 04.06.2009
Produktlinien: Standard, Expert
Module: Leistung & CRM