Domino 9 und frühere Versionen > ND7: Entwicklung

Dialoglistenauswahl zur Laufzeit ändern

(1/5) > >>

Demian:
Hallo alle zusammen,

in der Forum-Suche habe ich nichts passendes dazu gefunden, deswegen ein neuer Beitrag.

Folgendes Problem: Ich möchte anhand einer Benutzerauswahl im Postopen die Auswahlliste eines Dialog- oder Kombinationsfeldes mit verschiedenen Werten füllen.

Zum Auslesen der jeweiligen Werte verwende ich folgenden Code:

Sub Postopen(Source As Notesuidocument)
        Dim work As New NotesUIWorkspace
   Dim s As New NotesSession
   Dim db As notesdatabase
   Dim view As NotesView   
   Dim Doc As NotesDocument
   Dim Feld As NotesItem
   Dim arr()
   
   Dim Auswahl As Variant
   Dim Bereich(1) As String
   
   Bereich(0)="Angestellte"
   Bereich(1) = "Gewerbliche"
   
   auswahl = work.Prompt(Prompt_OKCANCELLIST,"Test","Bitte wählen Sie den Bereich","",Bereich)
   
   Set db = s.CurrentDatabase
   Set view = db.GetView("Personal - " & Auswahl)
   Set doc = view.GetFirstDocument
   
   For i = 1 To view.AllEntries.Count
      Redim Preserve arr(i)
      arr(i) = doc.GetItemValue("PersNr")
      Set doc = view.GetNextDocument(doc)
   Next i
end sub

Hatte es mit .appendtotextlist probiert, da es mich an .additem aus Excel erinnert hat, dort wurden die Werte aber direkt in das Feld geschrieben.

Oder kann man diese Felder generell nur mit @dblookup und @dbcolumn füllen?


Gruß
Demian

 

koehlerbv:
Zuerst einmal Vorsicht: Du musst im PostOpen zumindest anfangs erstmal die Bedingung abfragen, unter der die Befüllung Deines Auswahlfeldes überhaupt geprüft werden soll. Minimum wäre die Prüfung auf den EditMode ...

Weiters: Dein Auswahlfeld muss sich auf ein berechnetes Feld beziehen ("Formel verwenden" und dann dieses Feld angeben). Wie Du dieses dann füllst - ob per @dbLookup (@dbColumn kommt hier ja wohl nicht in Frage) oder mit LotusScript, ist Jacke wie Hose ... mit dem "kleinen" Unterschied, dass Du mit Formelsprache auch Felder "Berechnet zur Anzeige" füllen kannst, mit LS jedoch nicht.

Bernhard

LN4ever:
Wenn ich in LS einem item die Property SAVETODISK=FALSE gebe, habe ich in LS auch ein "BERECHNET ZUR ANZEIGE"-Feld. Genau das war es ja, was sich zwischen Version 4 und Version 5 geändert hatte.

In den Versionen vor Version 5 konnte ich Felder BERECHNET ZUR ANZEIGE machen, bei Bedarf dann ein VIEWSWITCHFORM, dort in einer anderen Maske das gleichnamige Feld BEARBEITBAR oder BERECHNET. Wenn ich gespeichert habe, blieb dieses Feld auf alle Ewigkeiten erhalten.

Ab Version 5 ist das Verhalten anders. Das Feld ist nach dem nächsten Speichern mit der Maske, in der es als BERECHNET ZUR ANZEIGE deklariert ist, weg.

Demian:
Hallo ihr beiden,

Bernhard mit deinem Hinweis auf Editmode zu prüfen hast du natürlich recht. Sollte ich mir mal angewöhnen.  :)

Allerdings ist mir nicht ganz klar was du mit : "dein Auswahlfeld muss sich auf ein berechnetes Feld beziehen...." meinst?

Die Auswahl erfolgt doch über work.prompt?

Wie kann ich denn generell die Auswahlliste per Script erstellen?

@LN4ever: Sorry, aber da steh ich auf dem Schlauch...

Gruß
Demian

 

koehlerbv:
Deine Auswahl triffst Du wohl über Prompt, aber damit muss ja das Auswahlfeld bedient werden. Und dieses soll sich über ein Feld (das den Inhalt Deines Arrays arr" erhält) bedienen - daher "Auswahl per Formel".

Das andere Thema: Norbert hat selbstverständlich Recht - man kann verhindern, dass ein Item im Backend genauso wie das Feld "Berechnet zur Anzeige" im Frontend nicht gespeichert wird - mea culpa.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln