Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Fis am 27.09.02 - 14:39:34
-
Hallo zusammen,
ich habe 2 Felder, aus dem einen Feld ruf ich eine Person aus dem names.nsf auf und möchte das in dem 2 Feld aus dem automatisch von der jeweiligen Person das Feld Location aus dem Personendokument haben.
Ich hoffe nicht zu kompliziert erklärt.
Danke und Gruß
Rodan
-
Hi,
du brauchst eine Ansicht die, in der ersten Spalte, so sortiert ist wie der Eintrag im Feld 1 (Namen).
Im zweiten Feld macht du ein @DBLookup auf diese Ansicht mit dem Namen aus Feld 1 als Key und liest damit das Feld Location aus.
Eine andere Alternative wäre eine entsprechende Nachschlageansicht ins Adressbuch aufzunehmen, die in einer Spalte beide Werte (Namen und Location) mit einem Trennzeichen (z.B. "~") enthält. Man kann dann mit @Picklist diese Spalte auslesen und mit @Word-Funktionen die Einträge trennen und in die Felder setzen.
Ich hoffe ich hab mich verständlich ausgedrückt.
Schönes Wochenende
Axel
-
hmm will noch nicht so ganz, ich bin ein designer-anfänger wäre gut wenn du das auch so erklären könntest.
Danke :)
-
Hallo,
mal eine dokumentierte Lösung für Dein Problem ;).
----------- cut here ------------
REM "Namen per Picklist (Standardabfrage Adressbuch) holen und gleich ins Format der Suchansicht wandeln";
Name_ := @Name([Abbreviate];@PickList([Name]:[Single]));
REM "Wo bin ich? Auf welchem Server oder lokal?";
ThisServer_ := @Subset(@DbName;1);
REM "Wie heisst meine DB, in der ich suche";
SourceDB_ := ThisServer_ : "names.nsf";
REM "View im öffentlichen Adressbuch mit sortierten Namen (Abbreviate)";
ViewPerson_ := "($VIMPeople)";
REM "Location aus Names auslesen";
Location_ := @DbLookup("" : "NoCache"; SourceDB_; ViewPerson_ ; Name_ ; "Location");
REM "Feldzuweisungen";
FIELD Name := Name_;
FIELD Location := Location_;
REM "Dummyeintrag für Button, die nicht verstehen wollen, dass der Code schon zu Ende ist";
SmilePlease
----------- cut here ------------
Gruss Kokomiko
-
Hi,
der Lösung von Kokomiko ich nichts mehr hinzuzufügen.
Axel
-
´Hat funktioniert. Danke euch beiden ;D
-
Hallo Kokomiko,
ich habe in einem Formular ein Feld "SendTo" mit der Eigenschaft Namen und möchte das die Anwender dort, so wie Sie es aus dem normalen Mailing gewohnt sind, nur einen Kurznamen eingeben und das dann der vollständige Benutzername angezeigt wird.
Ist das der Fall soll ein Button der die Funktion "@MailSend" hat, das Formular an denjenigen schicken, der im Feld "SendTo" steht.
Also Adressuche nur auf dem Server ( Notes-01/Notes ) und dort in "names.nsf". Der eindeutige Suchname steht dort im Feld "Kurzname/BenutzerID" der dann angezeigte im Feld "Benutzername".
Jetzt hatte ich allerdings Probleme die Formel aus deinem Beitrag umzusetzen und hoffe auf Deine Hilfe.
Besten Dank im voraus!!!
-
Hallo Aba,
tu Dir das nicht an. Du könntest zwar auf die Ansicht ($Users) zugreifen und mit dem Picklist-Befehl (aber nicht in der Standardform für Adressen, sondern sauber alles selber definieren) von dort dann den Kurznamen raussuchen (aus allen Schreibweisenvarianten, die es zu allen Usern gibt!). Empfehlen würde ich das nicht. Die User müssen auch lernen, mit dem System umzugehen.
Die Abfrage sieht dann so aus:
--------------- cut here -----------
REM "Wo bin ich? Auf welchem Server oder lokal?";
ThisServer_ := @Subset(@DbName;1);
REM "Wie heisst meine DB, in der ich suche";
SourceDB_ := ThisServer_ : "names.nsf";
REM "View im öffentlichen Adressbuch mit sortierten Namen in allen Varianten";
ViewPersonByAllNames_ := "($Users)";
SearchName_ := @PickList([Custom]; SourceDB_; ViewPersonByAllNames_; "Auswahl Name";"Bitte wählen Sie eine Person";1);
REM "Location aus Names auslesen";
Location_ := @DbLookup("" : "NoCache"; SourceDB_; ViewPersonByAllNames_ ; SearchName_ ; "Location");
FullName_ := @DbLookup("" : "NoCache"; SourceDB_; ViewPersonByAllNames_ ; SearchName_ ; "FullName");
Name_ := @Name([Abbreviate]; @Subset(FullName_; 1));
REM "Feldzuweisungen";
FIELD Name := Name_;
FIELD Location := Location_;
REM "Dummyeintrag für Button, die nicht verstehen wollen, dass der Code schon zu Ende ist";
SmilePlease
--------------- cut here -----------
Aus der Erfahrung heraus: Man sollte niemals alles machbare machen. Wir haben da eine Grundregel bei uns für alle Anforderungen an die Programmierung:
80% gleich
10% vielleicht irgendwann einmal
10% niemals
Dein Ansinnen käme bei mir auf 110%.
Gruss Kokomiko
-
Hallo,
vielen Dank für die Antwort, das werde ich gleich mal probieren!!!
-
allgemein zum Theam "Adressbuch auslesen" hatten wir hier schon mal was.
http://www.atnotes.de/index.php?board=7;action=display;threadid=1950;start=0
das spart die lästigen @DBLookups
eknori