Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Wilhelm Weber am 08.11.10 - 23:18:56
-
Hallo zusammen,
ich muss in ein existierendes Skript folgendes einbauen.
Feld 1 hat einen bestimmten Wert. Abhängig vom diesen Wert soll eine Auswahlbox in Feld2 verschiedene vorgegebene Werte einblenden, von denen dann genau einer ausgewählt werden soll.
Es gibt eine Ansicht mit 2 Spalten, auf die ich zugreifen will. In der ersten steht der Wert von Feld1, in der zweiten ist ein Feld mit Mehrfachwerten hinterlegt aus denen ein Wert ausgewählt werden soll.
Es sol also eine Auswahlmöglichkeit eines Wertes aus dieser 2.Spalte erscheinen .
Bei Formel wäre das wohl was für @picklist, wie kriegt man das in skript hin ?
Habe mit der Pickliststrins methode probiert, aber es klappt nicht .
Irgendwelche Tipps ??
Grüße
Wilhelm
-
@Picklist in Formel würde nicht funktionieren. Du willst ja nicht aus einer Ansicht etwas auswählen, sondern aus einer Liste zu einem Wert. Mit @Picklist könntest Du Spalte1 auswählen und bekämst Spalte2 zurück. Du willst aber in Spalte1 nach einem gegebenen Wert suchen und dann einen der dazugehörigen Werte aus Spalte 2 auswählen. In Formel würdest Du @Prompt in Kombination mit @DBLookup verwenden.
Für die Auswahlliste gibt es in Script NotesUIWorkspace.Prompt, oder Du baust Dir eine eigene Dialogbox, die Du dann mit NotesUIWorkspace.Dialogbox bedienst. An die auszuwählenden Werte kommst Du mit NotesView.GetDocumentByKey und dann entweder den Feldnamen oder NotesDocument.ColumnValues
-
Hallo Peter,
danke für die Info, habe was versucht aber es klappt nicht wirklich.
Mit Notsview.GetDocumentByKey muss ich doch den wert aus Feld 1 nehmen aber dann komme ich nicht weiter.
ist nicht wirklich mein gebiet, hast du einen kleinen Ansatz dafür ?
Grüße
Wilhelm
-
Set doc = view.GetDocumentByKey (suchwert, true)
damit bekommst Du das Dokument in der Ansicht, das in der ersten sortierten Spalte den suchwert enthält. Von diesem Dokument kannst Du dann entweder den Inhalt der Spalte 2 auslesen (mit doc.ColumnValues) oder direkt auf das Feld gehen, das in der Spalte 2 angezeigt wird (ColumnValues ist eigentlich nur dann sinnvoll, wenn in der Spalte Werte zusammengerechnet werden, dann spart man, das nochmal nachzubauen).
So erhältst Du die Werte, aus denen Du einen auswählen willst. Anschließend brauchst Du dann das Prompt zur Auswahl.
-
So habe jetzt das Dokument gefunden und direkt auf das 2. Feld zugegriffen
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim view As notesview
Dim doc As NotesDocument
Dim doc As NotesDocument
Dim uidoc As notesuidocument
Dim loopdoc As NotesDocument
Dim item As Variant
Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
suchwert = uidoc.FieldGetText( "Feld1" )
Set view = db.GetView("ansicht")
Set doc = view1.GetDocumentByKey (suchwert, True)
Item = doc.Feld2
Jetz hakt es noch bei der Auswahl des Wertes . Kannst du da nochmal unterstützen ?
Grüße
Wilhelm
-
Was sagt der Debugger ?
Wo "hakt" es ?
-
Variant does not contain an Object
response = ws.Prompt (PROMPT_OK, _
"Bitte auswählen", _
"Bitte auwählen.", „“, item(0))
-
Set doc = view1... kann nicht sein, da Du nur view definiert hast
Also
Set doc = view.GetDocument...
Danach
Dim auswahl As Variant
auswahl = workspace.Prompt (PROMPT_OKCANCELLIST, "Titel", "Bitte auswählen", "", doc.Feld2)
Hab das nur sinngemäß aus der Hilfe abgeschrieben, aber selbst noch nie verwendet, da ich dazu eigene Dialogboxen benutze.
-
Set doc = view1... kann nicht sein, da Du nur view definiert hast
Richtig, es war auch view, falsch kopiert
Der 2. fehler war verwendung von ws statt workspace wie es definiert war
@ Peter und klauss
Danke für eure Hilfe, es läuft !