Hallo liebes Notes Forum,
ich habe ein Problem mit einem ProfilDocument. Ich möchte auf diesem dynamisch eine Tabbed Tabelle erzeugen.
Ich hole mir die Referenz auf das Document wie folgt
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
Im ProfilDocument gibt es nun eine Hotspotschaltfläche, über diese in einem RichTextFeld eine TabbedTabelle erzeugt, bzw. falls die schon existiert eine Spalte angehangen wird.
If Not rtnav.FindFirstElement( RTELEM_TYPE_TABLE ) Then
Redim strGremium( 0 ) As String
strGremium( 0 ) = Inputbox( "Neues Gremium" )
Call uidoc.FieldSetText( "greGremien", strGremium( 0 ) & ";" )
Call rtf.AppendTable( rows, columns, strGremium )
Else
Set rtt = rtnav.GetElement
Call rtt.AddRow( 1, rtt.RowCount )
...
Nun ist das erste Problem das füllen der Tabüberschriften, hierfür habe ich ein verstecktes Feld angelegt greGremium, in welchem die bisherig angelegten Gremien (also Tabs) hinterlegt sind. Diese lese ich dann aus und speichere diese in einem Array, welchen ich dann der Eigenschaft RowLabels der NotesRichTextTabelle übergeben kann.
strGremienList = uidoc.FieldGetText( "greGremien" )
While Not Instr( intBeginPos, strGremienList, ";" ) = 0
strGremium( i ) = Mid( strGremienList, intBeginPos, Instr( intBeginPos, strGremienList, ";" ) - 1 )
intBeginPos = Instr( intBeginPos, strGremienList, ";" ) + 1
i = i + 1
Redim Preserve strGremium( i )
Wend
strGremium( i ) = Inputbox( "Neues Gremium" )
rtt.RowLabels = strGremium
End If
Als letztes kommt dann die in diesem Forum verbreitete Methode des Forenmitgliedes ATA zum Einsatz um das Dokument zu schließen und wieder zu öffnen.
Aber nach Aufruf dieser Funktion ist die Tabelle des RichTextFeldes verschwunden, ebenso wie die Werte im Feld greGremium. Ausserdem lässt sich nach Anlegen der Tabelle die Hotspotschaltfläche nicht nocheinmal betätigen, folgender Fehler tritt auf
Illegal function call
Lotus Notes geht nochnicht einmal in den Debugger an dieser Stelle.
Wo liegt der Fehler den ich begangen habe, ich vermute mal, das es mit der Tatsache zusammen hängt, das ich hier ein ProfileDocument bearbeite, sitze aber schon seit heute morgen an dem Prob, weiss einfach nicht mehr weiter, das micht mich langsam kirre, danke für eure Hilfe.
Hier nocheinmal der komplette Quelltext der Hotspotschaltfläche (ohne Exception Handling
)
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim rtf As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim rtt As NotesRichTextTable
Dim strGremium() As String
Dim strGremienList As String
Dim rows As Integer
Dim columns As Integer
Dim intBeginPos As Integer
Dim i As Integer
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
Set rtf = doc.GetFirstItem( "greDynamicTable" )
Set rtnav = rtf.CreateNavigator
rows = 1
columns = 1
i = 0
If Not rtnav.FindFirstElement( RTELEM_TYPE_TABLE ) Then
Redim strGremium( 0 ) As String
strGremium( 0 ) = Inputbox( "Neues Gremium" )
Call uidoc.FieldSetText( "greGremien", strGremium( 0 ) & ";" )
Call rtf.AppendTable( rows, columns, strGremium )
Else
Set rtt = rtnav.GetElement
Call rtt.AddRow( 1, rtt.RowCount )
strGremienList = uidoc.FieldGetText( "greGremien" )
While Not Instr( intBeginPos, strGremienList, ";" ) = 0
strGremium( i ) = Mid( strGremienList, intBeginPos, Instr( intBeginPos, strGremienList, ";" ) - 1 )
intBeginPos = Instr( intBeginPos, strGremienList, ";" ) + 1
i = i + 1
Redim Preserve strGremium( i )
Wend
strGremium( i ) = Inputbox( "Neues Gremium" )
rtt.RowLabels = strGremium
End If
Call ReOpen( doc )
End Sub