Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Julle am 12.08.05 - 10:02:39

Titel: DBLookup mit Listenfeld als Schlüssel
Beitrag von: Julle am 12.08.05 - 10:02:39
Guten Morgen,

Eine Userin möchte im Adressbuch bei den Gruppen nicht nur die Mitglieder sehen, sondern auch deren Mailadressen. Ich versuche das über ein weiteres Feld "Mailadressen" in der Maske Gruppe abzufackeln. Das Feld ist berechnet und mit folgender Formel belegt: @For(n := 1;n <= @Elements(members);n := n + 1;
         FIELD Mailadresse := @DbLookup  "":"NoCache" ; "" ;"(Personen)"; "Members" ;"MailAddress")); Mailadresse

Die Felder Members und Mailadresse sind Mehrfachwertfelder.

Beim Testen kommt immer die Fehlermeldung "Eintrag im Index nicht gefunden, oder der Index ist für die Ansicht nicht aufgebaut". Die Ansicht ist indiziert, die erste Spalte der Ansicht (Personen) ist sortiert, daher verstehe ich die Fehlermeldung nicht.

Was ist falsch? Was muss ich ändern?

Die Notes Version ist 6.5.3

Grüße
Julle
Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: umi am 12.08.05 - 10:08:46
Die Fehlermeldung bedeutet nur, dass er den Schlüssel "Members" nicht in der Ansicht gefunden hat.

Versuch mal das:
Code
_Members:=Members;
@For(n := 1;n <= @Elements(_members);n := n + 1;
_Mailadresse := @DbLookup("":"NoCache" ; @dbname ;"(Personen)"; _Members[n] ;"MailAddress";[FailSilent]):_Mailadresse);
Field Mailadresse:=_mailadresse;
Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: Julle am 12.08.05 - 10:42:17
Hallo umi,

ich bekomme jetzt zwar keine Fehlermeldung mehr, aber dafür steht im Feld Mailadresse jetzt nur eine "1".

Grüße
Julle
Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: umi am 12.08.05 - 10:46:28
Evtl musst Du die Formel noch anpassen.

Code
_Members:=Members;
@For(n := 1;n <= @Elements(_members);n := n + 1;
@prompt([ok];"DEBUG";_Members[n];
_Mailadresse := @DbLookup("":"NoCache" ; @dbname ;"(Personen)"; _Members[n] ;"MailAddress";[FailSilent])+","+_Mailadresse);
Field Mailadresse:=_mailadresse;
Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: Julle am 12.08.05 - 11:13:16
Hallo umi

Danke für die prompte Antwort.

Ich habe die Anpassung vorgenommen. Er zeigt mir brav alle members auf. In einem zweiten prompt zeigt er mir aber nur die Mailadresse des letzten members. Im Feld steht danach weiterhin eine 1.
Auch wenn ich die Members auf einen einzigen Eintrag verringere, zeigt er nicht die Mailadresse an. Mir ist das Ganze langsam nur noch schleierhaft.

Grüße
Julle
Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: umi am 12.08.05 - 11:20:48
Warte mal, Die Formel steht doch im Feld selbst oder?
dann müsste die letzte Zeile nicht
Field Mailadresse:=_Mailadresse heissen, sondern
nur
_Mailadresse

Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: Julle am 12.08.05 - 11:29:13
Yoo, der letzte steht jetzt im Feld, aber leider nicht die ganze Liste der zur Liste Members passenden E-Mail-Adressen. Kann man Notes beibringen, doch bitte alle Schlüssel des Feldes Members zu nehmen und die dazu passenden Einträge aus der Ansicht in das Feld Mailadressen zu schreiben?

Grüße
Julle
Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: sja am 12.08.05 - 14:52:56
Hallo,

sollte die Formel nicht so aussehen:

FIELD Mailadresse:=Mailadresse : _Mailadresse;
Mailadresse

sonst den nächsten Eintrag überschreibt vorherige


Gruesse
Sofia
Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: Tode am 15.08.05 - 11:53:59
Wegen solcher Beiträge bin ich von Anfang an Skeptisch gegenüber diesen komischen Schleifen und zeugs in R6 gewesen.

Warum mit ner For- Schleife rummurksen, wenn die Formelsprache doch per se schon (fast) perfekt mit Listen umgehen kann:

Das ist das einzige was man in einem Feld (Mehrfachwerte, berechnet) in der Formel benötigt:

@DbLookup("":"NoCache" ; "" ;"(Personen)"; Members ;"MailAddress";[FailSilent]);

Aus die Maus....

Gruß
Tode
Titel: Re: DBLookup mit Listenfeld als Schlüssel
Beitrag von: Julle am 18.08.05 - 10:30:00
Danke Tode,
das war's. ich habe es zu Anfang mit einem einfachen Lookup probiert, aber es muss noch ein Fehler drin gewesen sein, jedenfalls klappte es nicht.

Grüße
Julle