Tag zusammen,
ich habe von einem unserer Schwesterwerke eine DB "geerbt", die bis jetzt wunderbar funktioniert hat.
In der DB gibts eine Maske, die für eine Kunden Auswahl benutzt wird. In dieser Maske gibt es zwei Listenfelder.
Das erste ist eine Kundenliste (List), die aus einer Ansicht gefüllt wird.
@DbLookup( "": "ReCache" ; "":"" ; "(CustomerView)"; @Text(SearchCustomer) ; 1; [PartialMatch])
Die (CustomerView) besteht aus einer Spalte:
KundeA | DocUID
KundeB | DocUID
KundeC | DocUID
usw.
Die andere ist eine Kontaktliste, die nach Auswahl der Kundenliste ebenfalls aus einer Ansicht gefüllt wird.
@If(List="";"";@DbLookup( "": "ReCache" ; "" : "" ; "(ContactView)"; List ; 2 ))
Nach Auswahl des Kontakts werden weitere Felder im Dokument gefüllt.
So und nun zum Problem. Sobald in der Kundenliste der Kundenname doppelt vorkommt funktioniert das ganze nicht mehr, da das Feld "List" mir zwei DocUID's zurückgibt und somit die Kontakte von beiden Kunden auftauchen.
Besteht die Möglichkeit nur den gerade gewählten Kunden aus dem Listenfeld rauszubekommen?
Oder zumindest abzufragen welcher der gleichnamigen Kunden gewählt ist?
Oder bin ich da ganz auf dem Holzweg... und es gibt eine andere Lösung dafür?
Bin für alle Vorschläge dankbar!
Gruß
Dimitri
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? :-:
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));
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.).
Sub Postrecalc(Source as Notesuidocument)
Dim doc As NotesDocument
Set doc = Source.Document
Call doc.FieldSetText("tmpField", doc.List(0))
So krieg ich den ersten Kunden mit dem gleichen Namen aus der Liste
Call doc.FieldSetText("tmpField", doc.List(1))
So den zweiten Kunden...
Call doc.FieldSetText("tmpField", doc.List(n))
End Sub
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