Hallo zusammen,
seit gestern beschäftigt mich folgendes Problem:
Wir haben ein eigenentwickeltes Adressbuch im Einsatz, welches auch so ne Pickerfunktionalität mit drin hat.
Allerdings ist die bis jetzt mit Profildokumenten gelaufen, aber das ganze sollte jetzt umgebaut werden,
dass die Profildoc's nicht mehr benötigt werden.
Ich habe mir jetzt eine Funktion gebastelt, die den Buchstaben übergibt, der gerade angeklickt wurde.
Die Funktion macht folgendes:
Function pickIt(Buchstabe As String)
Dim session As New notessession
Dim workspace As New NotesUIWorkspace
Dim uiview As NotesUIView
Dim uidb As NotesUIDatabase
Call workspace.SetTargetFrame("RightFrame")
Set uidb = workspace.CurrentDatabase
Set uiview= workspace.CurrentView
Call uidb.OpenView(uiview.ViewName, Buchstabe)
End Function
Eigentlich sollte dann der gleiche View wieder aufgerufen werden und eben dann oben das erste Dokument mit dem angeklickten Anfangsbuchstaben anzeigen.
Nur leider kommt in der Zeile "Call uidb.openview(uiview.viewName, Buchstabe)" die Fehlermeldung "Objectvariable Not Set"
Notes kann hier nicht zuordnen, welcher View gerade geöffnet ist...
Kann mir jemand weiterhelfen, wo der Fehler liegt?
Viele Grüße
Andi
Was mir so spontan einfällt :
- Erstell in der Maske ein verstecktes Feld "ViewName"
- Erstell in der Maske ein verstecktes berechnetes Feld "SaveOptions", Wert "0"
- Bau die Gliederung so um, daß dort nicht ein Element direkt verlinkt wird, sondern über eine Formel die View angesteuert wird.
Die Formel müßte in etwa so aussehen :
@SetField("ViewName", "Ansichtenname");
@SetTargetFrame("RightFrame");
@PostedCommand([OpenView]; "Ansichtenname")
- Bau anschließend die Scriptfunktion so um, daß aus dem UIDocument das Feld "ViewName" ausgelesen wird.
Also in etwa so :
Function pickIt(Buchstabe As String)
Dim session As New notessession
Dim workspace As New NotesUIWorkspace
Dim uidb As NotesUIDatabase
Dim uidoc As NotesUIDocument
Dim Ansicht as String
Set uidb = workspace.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Ansicht = uidoc.FieldGetText("ViewName")
Call workspace.SetTargetFrame("RightFrame")
Call uidb.OpenView(Ansicht, Buchstabe)
End Function
Der Effekt ist, daß beim Auswählen einer View aus der Gliederung der Ansichtenname in das versteckte Feld geschrieben wird. Diesen liest Du wiederum aus, wenn der Picker aktiviert wird.
Edit : Ist ungetestet, könnte aber funktionieren ;)