Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: BMWTordi am 15.10.07 - 14:09:29
Titel: Alle Forms einer DB prompten
Beitrag von: BMWTordi am 15.10.07 - 14:09:29
Hallo zusammen. Ich möchte gerne eine Auswahl erstellen in der der User alle Forms einer Datenbank zur Auswahl hat. Er soll dann dort eine Form auswählen können.
Ich habe hier einen Agenten der mir Dokumente aus einer Excel Tabelle einlagert und möchte mit dieser Auswahl steuern welche Dokumente angelegt werden sollen. Ich kome aber leider nicht weiter.
Titel: Re: Alle Forms einer DB prompten
Beitrag von: diali am 15.10.07 - 14:11:32
Schau Dir mal NotesDatabase.Forms an.
Titel: Re: Alle Forms einer DB prompten
Beitrag von: BMWTordi am 15.10.07 - 14:17:07
Danke für den Tip. Das hatte ich sogar schon gefunden. Nur wie bekomme ich die in einen Prompt?
Titel: Re: Alle Forms einer DB prompten
Beitrag von: diali am 15.10.07 - 14:28:39
entweder über eine Dialogbox (NotesUIWorkSpace.Dialogbox) oder mit einem Prompt (NotesUIWorkSpace.Prompt).
Titel: Re: Alle Forms einer DB prompten
Beitrag von: BMWTordi am 15.10.07 - 14:39:02
Das dachte ich mir auch. Nur ich hab keine Ahnung wie ich die Forms in eine Prompt gerechte Liste reinbekomme.
Titel: Re: Alle Forms einer DB prompten
Beitrag von: diali am 15.10.07 - 14:43:20
Du musst das Forms-Array durchgehen und den NAmen auslesen und in ein Array schreiben. Dieses Array übergibst Du dann.
Code
redim FormArray(0)
Forall form In db.Forms
If FormArray(0) <> "" Then Redim preserve FormArray(Ubound(FormArray) + 1)
FormArray(Ubound(FormArray)) = form.Name
End Forall
Titel: Re: Alle Forms einer DB prompten
Beitrag von: BMWTordi am 15.10.07 - 15:08:22
Vielen Dank Dirk. Hast mir sehr geholfen.
Gruß Thorsten
Titel: Re: Alle Forms einer DB prompten
Beitrag von: BMWTordi am 16.10.07 - 10:13:14
Mit ein bischen Hilfe sieht die Geschichte jetzt so aus:
Redim FormArray(0) Forall form In db.Forms If Not Left$(form.Name,3) = "dlg" Then If FormArray(0) <> "" Then Redim Preserve FormArray(Ubound(FormArray) + 1) FormArray(Ubound(FormArray)) = form.Name End If End Forall erg = ws.Prompt(7, "Bitte eine Maske auswählen", "Bitte eine Maske auswählen.",FormArray(0),FormArray)
Nur für den Fall das jemand ein ähnliches Problem hat.
Titel: Re: Alle Forms einer DB prompten
Beitrag von: HarryB am 16.10.07 - 11:56:21
Dass der Code jedes mal dann aufgerufen wird, wenn der Benutzer entsprechend ein neues Dokument erstellen will ist aber nur dann sinnvoll, wenn die Masken in der Datenbank einer laufenden Veränderung unterliegen. Ansonsten ist es sinnvoller, die Masken zum Beispiel in ein Profil- oder Konfigurationsdokument einzulesen und dort in ein Textfeld mit Mehrfachwerten zu hinterlegen.
Letzteres habe ich in einer Datenbank auch schon gemacht.
Viele Grüße Harry
Titel: Re: Alle Forms einer DB prompten
Beitrag von: Glombi am 16.10.07 - 12:00:16
Man kann sich eine Ansicht gestalten, die nur die Masken als Dokumente anzeigt. Dort sollte es möglich sein, per @DbColumn zuzugreifen.
Ist etwas tricky, aber warum nicht. Spart auf jeden Fall Zeit und aufwändige Sortierungen etc.
siehe dazu http://www.nsftools.com/tips/NotesTips.htm#formulaclass