Also lieber Angelo,
nochmal ganz langsam:
1) Wie funktioniert der ScriptBefehl "PicklistStrings" ?
back = ws.PickListStrings (PICKLIST_CUSTOM, False, db.Server, db.FilePath, _
"(ProjectByProjectTitle_OnlyNotClosed)", "Titel", "Nachricht", Spalte)
Parameter:
PICKLIST_CUSTOM = Du möchtest offenbar nicht etwas aus der Systemdatenbank (Domino-Verzeichnis) auslesen, sondern etwas aus einer benutzerdefinierten Datenbank. Das ist soweit offenbar ok.
False = Du möchtest einen Wert als Rückgabewert haben, und nicht mehrere Werte. Der Anwender soll also später, wenn er auf die Schaltflächt clickt, nicht die Möglichkeit haben, mehrere Dokumente auszuwählen, wie das zum Beispiel passiert, wenn Du beim Mail die (mehrere) Addressaten auswählst. Das ist offenbar auch soweit ok.
db.Server, db.file = Die Datenbank "db" soll geöffnet werden, das ist Dir - denke ich - hinlänglich mehrfach erklärt worden, dass Du Deinem Programm damit sagst, dass er die Datenbank "db" (= DHTimRegen.nsf auf lokal) verwenden soll.
"(ProjectByProjectTitle_OnlyNotClosed)" = Die Ansicht "(ProjectByProjectTitle_OnlyNotClosed)" soll geöffnet werden. Hier tun sich einige Fragen auf. Warum wählst Du eine Ansicht mit einem solchen Namen? Du schreibst doch von einer ganz anderen Ansicht? Du schreibst doch, Du möchtest die Ansicht "Projektdokumente \nach Projektbezeichnung" öffnen.
Hier sehe ich mehrere Möglichkeiten, was schief laufen könnte.
Möglicherweise hat die Ansicht, die Du meinst, zwei Namen, einen "normalen" Namen und einen sogenannten Alias-Namen. Das siehtst Du im Designer. Wenn die Ansicht einen Aliasnamen hat, dann nimm den Aliasnamen, sonst nimmst Du den "normalen" Namen. Bitte beachte, dass ein Backslash (= "\") ein Sonderzeichen ist und die Ansicht in Wirklichkeit dann "Projektdokumente \\nach Projektbezeichnung" heisst, also mit zwei Backslashes drinn. Das wäre gegebenenfalls in Deinem Script anzupassen. Grundsätzlich ist es aber eigentlich immer besser, mit Aliasnamen zu arbeiten, also nochmal: Wenn Die Ansicht einen Aliasnamen hat, dann nimm den!
Zum PicklistString-Befehl gehören auch noch die Parameter
"Titel" = Was soll in der Auswahlbox in der Überschrift erscheinen
"Message" = "Mit welcher Frage soll die Auswahl für den Anwender garniert werden"
"Column" = Welche Spalte aus der Ansicht soll im Script zurückgeliefert werden?
Auch hier gibt es offenbar Dinge, die Dir nicht richtig klar sind. Du verwendest den Rückgabewert (back(0)), um später das Dokument zu laden. Das kann aber nur dann funktionieren, wenn die Ansicht, die Du verwendest, bestimmte Kriterien erfüllt. Wenn Column bei Dir 1 ist (das sieht man nicht. weil Dein Code unvollständig ist) und die erste Spalte in der Ansicht ist nicht sortiert, so wird das ganze scheitern, weil dann der "View.GetDocumentByKey" nicht mitmacht.
Zusammengefasst: Der "Pickliststring" öffnet eine Ansicht und bietet dem Anwender eine Auswahl an. Die Datenbank, die zu öffnende Ansicht und die Spalte, die zurückgeliefert werden soll, sind vom Programmierer anzugeben. Als Ergebnis erhält man einen einzelnen Wert, eine unmittelbare Verknüpfung zu einem Notesdokument existiert nicht.
Weiter ersehe ich aus Deinem Programmcode, dass Du aber eine Verknüfung zu einem Notesdokument benötigst. Du willst nicht nur einen Wert lesen, sondern gleich mehrere Felder und deren Inhalte sollen dann offensichtlich in das aktuell geöffnete Dokument eingetragen werden. Hierzu dienen Dir die Befehle "db.GetView" und "View.GetDocumentByKey("KeyName")"
Der GetView macht einfach nur im Hintergrund eine Ansicht auf, ohne dass der Anwender das am Bildschirm sieht. Der "View.GetDocumentByKey" schnappt sich im Hintergrund diese Ansicht und öffnet genauso im Hintergrund das Dokument x welches in der Ansicht unter dem Namen "KeyName" zu finden ist. Als Ansicht käme also die gleiche Ansicht in Frage, die Du auch schon für den PicklistString verwendet hast. Als Schlüssel eignet sich Dein Rückgabewert "Back(0)". Das geht aber - wie gesagt - nur dann, wenn die entsprechende Spalte sortiert ist.
Hoffe, das hilft Dir weiter.
Noch zwei Nachbemerkungen:
1. Ich habe mir diesen grauenhaften Thread jetzt lange genug angeguckt kann ihn nicht mehr sehen, deshalb meine Antwort jetzt etwas ausführlicher.
2. Angelo, ich will Dir wirkich nichts böses unterstellen, aber ich bin überzeugt davon, dass Du mit der Lösung des Problems bislang deutlich mehr Zeit verbraten hast, als wenn Du Dir von Anfang an mal vernünftig die Designerhilfe angeschaut hättest und das Problem ganz in Ruhe angegangen wärst. In sofern sind Deine Aussagen in Sachen Zeitdruck für mich nicht nachvollziehbar.
Grundlagen zu üben ist unter Zeitdruck sicher schwierig. Aber dieses Forum ist eigentlich nicht dazu da, Dinge aus "Datenbankentwicklung 1, erster Schulungstag" zu erläutern, die alle in der Designerhilfe schnell zu finden sind, wenn man nur bereit ist, sich mal eine Stunde darin einzuarbeiten.
Gruß
Ottmar