Domino 9 und frühere Versionen > ND6: Entwicklung
[LS] prompt mit aliaswerten?
(1/1)
fritandr:
Hallo,
ich möchte gerne meinen Anwendern mit LS eine Auswahlbox präsentieren. Nach Auswahl eines Wertes soll der dazu passende Alias genommen und weitergearbeitet werden.
Ich habe dafür zwar eine Lösung. Aber die kommt mir reichlich kompliziert vor. Deshalb hoffe ich auf Verbesserungsvorschläge von Euch.
Meine Lösung bisher:
--- Code: ---Sub Click(Source As Button)
On Error Goto ERRORHANDLER
Dim se As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim ws As New NotesUIWorkspace
Dim response As Variant
Dim resview As String
Dim values(3) As Variant
Dim rvalues(3) As String
Dim i As Integer '----- Schleifenzähler
Dim max As Integer '----- Anzahl Elemente in Values und rvalues
'----- Ansichten vorbelegen
values(0) = "Maileingang"
values(1) = "Mailausgang"
values(2) = "Alle Dokumente"
values(3) = "Diskussionsbeiträge"
'----- Aliase festlegen
rvalues(0) = "$Inbox"
rvalues(1) = "$Sent"
rvalues(2) = "$All"
rvalues(3) = "Mail Threads"
resview = ""
i = 0
max = 3
Set db=se.CurrentDatabase
'----- Ansicht oder Ordner auswählen, aus dem importiert wird
response = ws.Prompt (PROMPT_OKCANCELLIST, _
"Ansicht / Ordner wählen", _
"Bitte wählen Sie eine Ansicht oder einen Ordner aus.", _
values(0), values)
If Isempty (response) Then
'----- keine Auswahl getroffen
Messagebox "Die Aktion wurde vom Benutzer abgebrochen", , "Abbruch erfolgt"
Else
'----- Alias für die Auswahl holen
For i = 0 To max
If response = values(i) Then
resview = rvalues(i)
i = max
End If
Next
Messagebox resview, 64, "gewählte Ansicht"
End If
EXITSCRIPT:
Exit Sub
ERRORHANDLER:
Call ErrorMessage("shared Action: Mail importieren")
Resume EXITSCRIPT
End Sub
--- Ende Code ---
Mein erster Versuch war, die Werte bei values in der Form
values(0) = "Maileingang|$Inbox"
zu definieren. Dabei wird mir dann aber der komplette String auch in meiner Auswahlbox angezeigt. Das will ich aber nicht.
Wie kann ich es besser (variabler) machen?
Viele Grüße
Andreas
cgorni:
Hallo,
bei Paaren von Werten kann man sehr gut die Listen von LotusScript benutzen, ungefähr so:
zuerst die Dimensionierung
dim SelectionList list as string
dann Initialisieren:
SelectionList("Maileingang") = "$Inbox"
SelectionList("Mailausgang") = "$Sent"
Später die Auswahl des Users benutzen um den Alias zu bekommen:
resview = SelectionList(response)
Ich gehe jetzt davon aus, das ein einzelner String in <response> steckt.
gruß,
Christian
mibo11:
Hallo Andreas,
um Christians Gedanken weiterzuführen.
Dein Teil würde dann so aussehen.
'----- Alias für die Auswahl holen
Forall einzelwert In SelectionList
If response = Listtag(einzelwert) Then
resview = einzelwert
Exit Forall
End If
End Forall
Aber bekanntlich führen viele Wege nach Rom.
Ich benutze Listen bei solchen Dingen ganz gerne, da man sich das zählen der Arrayeinträge sparen kann. Ausserdem kann man sich das Redimmen bei dynamischen Arrays sparen und statt dessen ggf. eine Liste verwenden.
Gruß Sascha
fritandr:
Danke für die Tipps. Vielleicht sollte ich mir das Thema Listen doch mal intensiver ansehen.
Schätze, damit kann man sich in vielen Situationen das Leben erleichtern.
Viele Grüße
Andreas
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln