Domino 9 und frühere Versionen > Entwicklung
DB-Auswahldialog mit Rückgabewert
Glombi:
@Jerome:
Wie bekomme ich denn den Wert für die gewählte Datenbanken zurück - in LotusScript.
Der Variant ist bei mir immer leer ???
Gruß
Andreas
Meff:
Hi Andreas,
kannst Du Deinen Script mal hier posten, damit man sehen kann was Du gemacht hast...
Meff ;)
Jérôme:
--- Zitat ---(...)warum baust Du Dir nicht einfach einen Array mit allen Datenbanken (...) auf (...)
--- Ende Zitat ---
Hi Meff!
Klar, das wäre auch gegangen, aber über den "Datenbank öffnen"-dialog ist es doch viel komfortabler und es sieht auch besser aus. ;)
@Andreas: Ich hab es auch grad mal mit LotusScript ausprobiert und bekomme auch nur den leeren String - mit Formelsprache geht's aber...
Ich schreibe meinen Code mal hierher:
--- Zitat ---
Dim ws As New NotesUIWorkspace
Dim var As Variant
Dim i As Integer
var = ws.Prompt( 13, "", "", "", "" )
For i = 0 To Ubound(var)
Msgbox var(i)
Next
--- Ende Zitat ---
Meff:
Dim uiWs As New NotesUIWorkspace
Dim frage As Variant, start As Variant
Dim posCounter As Integer, negCounter As Integer, errCounter As Integer, counter As Integer
Dim fragenAuswahl(2) As String, dbListe() as string
start = Messagebox("Diese Aktion kan mehrere Minuten dauern. Während dieser Zeit können Sie nicht Ihren Client nutzen. Möchten Sie wirklich fortfahren ?", 4 + 32, "Hinweis")
If start = 7 Then Exit Sub
'Zuweisung der Variablen
Set session = New NotesSession
Set curDb = session.CurrentDatabase
Set dbDir = New NotesDbDirectory(curDb.Server)
'Jetzt wollen wir doch mal schauen, was wir scannen sollen.
fragenAuswahl(0) = "Datenbanken"
fragenAuswahl(1) = "Templates"
fragenAuswahl(2) = "beides"
frage = uiWs.Prompt(PROMPT_OKCANCELLIST, "Bitte wählen", "Bitte wählen Sie aus der Liste, ob Sie Datenbanken oder Templates durchsuchen möchten.", " ", fragenAuswahl())
If frage = "Datenbanken" Then
Set checkDb = dbDir.GetFirstDatabase(DATABASE)
Elseif frage = "Templates" Then
Set checkDb = dbDir.GetFirstDatabase(TEMPLATE)
Elseif frage = "beides" Then
Set checkDb = dbDir.GetFirstDatabase(TEMPLATE_CANDIDATE)
End If
While Not checkDb Is Nothing
If Not checkDb.IsOpen = True Then
Call checkDb.Open(curDb.Server, checkDb.FilePath)
End If
if counter = 0 then
redim dbListe(counter) as string
dbListe(counter) = checkDb.Titel + "~" + checkDb.Filepath
else
redim preserve dbListe(counter) as string
dbListe(counter) = checkDb.Titel + "~" + checkDb.Filepath
end if
Set checkDb = dbDir.GetNextDatabase 'Nächste Datenbank im Directory
counter = counter + 1
Wend
So kannst Du Dir den Array aufbauen, welche Du später in einer Liste anzeigen lässt um Dir eine davon auszuwählen. Den Wert, welche Du hier zurückbekommst kannst Du dann verwenden um Dir die Datenbank mittels NotesDatabase.Open(Servername$, DB Filepath$) zu holen und alle Properties auszulesen.
Meff ;)
Glombi:
@Jerome:
Ich habe noch mal bei LDD nachgesehen: Also die Script Methode liefert nur den Servernamen zurück. Da ich das erstmal mit einer lokalen DB ausprobiert hatte, kam "" zurück.
Mit Deiner Formel bekomme ich "Type mismatch" ???
Wie kann man das mit der @Formelsprache machen ???
Gruß
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln