Ich habe eine Maske mit 4 Kombinationsfeldern. Diese Felder werden auf unterschiedliche Art gefüllt.
Problem: Ich möchte das Kombifeld nicht per Formel füllen, da die Werte aus einer DB 2 kommen und ich
nicht Temp-Dokumente anlegen möchte, die ich dann in einem View virtuell anzeige um sie dann von der
Formel in das Kombifeld zu übertragen.
Das Ergebnis der Maske wird auch nicht als Dokument abgelegt, sonder in DB 2 Tabellen gespeichert.
1. ) Formel - funktioniert
@DbColumn("";"";"RECRM_TYRE_003_TRA";2)
Ergebnis: 19 Einträge kein DefaultEintrag
Felder 2,3 und 4 werden über lotusscript ( OnLoad ) versorgt.
Feld 2
( Name = TRA_CODE )
wird mit document.replaceitemvalue("tra_code",arr)
der Array direkt in das Kombinationsfeld geschrieben.
Ergebnis: 1 Eintrag DefaultEintrag ist dieser 1 Eintrag
Feld 3
( Name = TRA_SCRIPT, dark-Feld = T_SCRIPT )
wird mit source.document.replaceitemvalue("t_script",arr)
der Array in das Darkfeld geschrieben und das Kombifeld sollte eigentlich über den Eintrag T_script in der Auswahlformel
die Werte übernehmen.
Ergebnis: kein Eintrag
Feld 4
( Name = TRA_code2, dark-Feld = T_SCRIPT2 )
wird mit source.document.replaceitemvalue("t_script2",s_f)
der String in das Darkfeld geschrieben und das Kombifeld sollte eigentlich über den Eintrag T_script2 in der Auswahlformel
die Werte übernehmen.
Der Inhalt von Feld 2 sieht folgendermaßen aus:
"|Wert1|Wert2|Wert3"
Ergebnis: kein Eintrag
Jetzt noch der Source-Code von OnLoad:
Sub Onload(Source As Notesuidocument)
If source.EditMode = True Then
Dim s As New NotesSession
Dim db As Notesdatabase
Dim view As NotesView
Dim Doc As NotesUIDocument
Dim KeyDoc As NotesDocument
Dim Feld As NotesItem
Dim arr() As String
Dim z As Integer
Dim s_f As String
Set db = s.CurrentDatabase
Set view = db.GetView("RECRM_TYRE_003_TRA")
Set keydoc = view.GetFirstDocument
'Set doc = source.document
'
'Feld2
'direkt in das Kombinationsfeld
' Ergebins: 1 Eintrag DefaultEintrag ja
'
Set feld = New notesitem(source.document,"tra_script"," ")
Redim arr(view.AllEntries.count) As String
For i = 1 To view.AllEntries.Count
z = i - 1
arr(z)= Keydoc.ColumnValues(1)
Set keydoc = view.GetNextDocument(keydoc)
Next i
Set feld = source.document.replaceitemvalue("tra_script",arr)
'Feld3
' Über verstecktes feld
' Ergebnis kein Eintrag
' im versteckten Feld sind alle Einträge vorhanden
'
Set keydoc = view.GetFirstDocument
'Set doc = source.document
Set feld = New notesitem(source.document,"t_script"," ")
Redim arr(view.AllEntries.count) As String
For i = 1 To view.AllEntries.Count
z = i - 1
arr(z)= Keydoc.ColumnValues(1)
Set keydoc = view.GetNextDocument(keydoc)
Next i
Set feld = source.document.replaceitemvalue("t_script",arr)
'Feld4
'
' Über verstecktes Feld 2. Versuch
' Ergebnis kein Eintrag im Kombinationsfeld
' im versteckten Feld sind alle Einträge vorhanden
'
S_F = "|"
Set keydoc = view.GetFirstDocument
Set view = db.GetView("RECRM_TYRE_003_TRA")
For i = 1 To view.AllEntries.Count
z = i - 1
s_f = s_f & "||" & Keydoc.ColumnValues(1)
Set keydoc = view.GetNextDocument(keydoc)
Next i
Set feld = New notesitem(source.document,"t_script2"," ")
Set feld = source.document.replaceitemvalue("t_script2",s_f)
' ListeGefüllt = True
End If
End Sub