Domino 9 und frühere Versionen > ND6: Entwicklung
Listenfeld -> gewähltes Element holen
diwi:
Hallo Norbert,
wenn ich das richtig verstanden habe, dann soll mit dieser Formel die Auswahl schon beim holen der Dokumente aus der Ansicht getroffen werden, so dass das Listenfeld "List" nur noch einen Eintrag enthält? ???
Falls ich falsch liege, könntest du mir die Formel bitte erläutern? :-:
--- Zitat von: LN4ever am 17.09.08 - 23:21:20 ---
zwisch:=@DbLookup(....);
@If(@IsError(zwisch);@Return("");NULL);
@If(@Elements(zwisch)<1;@Return("");NULL);
Vorschlag:=@Subset(zwisch;1);
List:=@If(@Elements(zwisch)=1;zwisch;@Prompt([OKCANCELLIST]; ...;Vorschlag;zwisch));
--- Ende Zitat ---
Ich hatte da eher an etwas in der Richtung gedacht:
Wenn die Liste zwei Kunden mit gleichen Namen enthält und einer davon gewählt wird, dann gibt das Listenfeld "List" zwei Werte zurück (bei drei gleichen Namen -> gibts drei Werte zurück, usw.).
--- Code: ---
Sub Postrecalc(Source as Notesuidocument)
Dim doc As NotesDocument
Set doc = Source.Document
Call doc.FieldSetText("tmpField", doc.List(0))
--- Ende Code ---
So krieg ich den ersten Kunden mit dem gleichen Namen aus der Liste
--- Code: ---
Call doc.FieldSetText("tmpField", doc.List(1))
--- Ende Code ---
So den zweiten Kunden...
--- Code: ---
Call doc.FieldSetText("tmpField", doc.List(n))
End Sub
--- Ende Code ---
So den n-ten Kunden...
Aber ich weiss damit immer noch nicht welcher davon tatsächlich in der Liste gewählt worden ist.
Gibts es eine Methode/Eigenschaft mit der ich das herausfinden kann(Habe in der Hilfe nichts in der Richtung finden können)?
Gruß
Dimitri
BigWim:
Hallo Dimitri,
--- Zitat ---Aber ich weiss damit immer noch nicht welcher davon tatsächlich in der Liste gewählt worden ist.
--- Ende Zitat ---
Meine Krücke ist ein verstecktes, berechnetes Feld (nur Anzeige). Als Formel der Name des Auswahlfeldes. So bekomme ich die aktuelle Auswahl.
Bin gespannt, ob es noch etwas eleganter geht ... ;)
Gruß
Markus
diwi:
--- Zitat von: BigWim am 18.09.08 - 12:19:42 ---Hallo Dimitri,
--- Zitat ---Aber ich weiss damit immer noch nicht welcher davon tatsächlich in der Liste gewählt worden ist.
--- Ende Zitat ---
Meine Krücke ist ein verstecktes, berechnetes Feld (nur Anzeige). Als Formel der Name des Auswahlfeldes. So bekomme ich die aktuelle Auswahl.
Bin gespannt, ob es noch etwas eleganter geht ... ;)
Gruß
Markus
--- Ende Zitat ---
Hallo Markus,
wie ich oben schon beschrieben habe, das funktioniert solange die Liste keine zwei bzw. mehrfach gleiche Werte enthält.
z.B. Liste:
KundeA|1
KundeB|2
KundeC|3
KundeC|4
Wenn jetzt "KundeA|1" oder "KundeB|2" gewählt wird bekommt man auch "1" oder "2" zurück aber
sobald KundeC ausgewählt wird bekommt man von der Liste den Wert "3" und "4" zurück geliefert. Dabei weiss ich aber nicht ob "KundeC|3" oder "KundeC|4" gewählt ist.
War schon am überlegen ob ich nicht die ganze Maske umbauen soll und anstatt der Listenfelder auf eine Ansichtauswahl umsteigen soll. Wobei das ja schon etwas mehr Aufwand bedeutet...
Hat jemnad noch eine Idee wie man das angehen könnte?
Gruß
Dimitri
BigWim:
Hallo Dimitri,
jetzt hab ich es auch verstanden. Dann hat LotusMen Recht. Im Feldereignis "Existing" kannst Du Dir den Wert holen. In deinem Fall steht dann dort die DocID.
Sub Exiting(Source As Field)
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim Wert as String
Set uidoc = uiws.CurrentDocument
Wert = uidoc.FieldGetText(<Feldname>)
End Sub
Viel Erfolg!
Markus
diwi:
--- Zitat von: BigWim am 18.09.08 - 14:34:01 ---Hallo Dimitri,
jetzt hab ich es auch verstanden. Dann hat LotusMen Recht. Im Feldereignis "Existing" kannst Du Dir den Wert holen. In deinem Fall steht dann dort die DocID.
Sub Exiting(Source As Field)
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim Wert as String
Set uidoc = uiws.CurrentDocument
Wert = uidoc.FieldGetText(<Feldname>)
End Sub
Viel Erfolg!
Markus
--- Ende Zitat ---
Leider stimmt das nicht, dass ich den gewählten Listeneintrag bekomme.
Wenn in der Liste wie oben erwähnt zwei Gleiche Kundennamen sind, dann bekommt man auch zwei Rückgabewerte => in deiner Variablen "Wert" steht dann "KundeC; KundeC" bzw. in meinem Fall stehen da dann zwei DocUID's drin.
Gruß
Dimitri
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln