Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Fis am 27.09.02 - 14:39:34

Titel: Feld aus dem Adressbuch übernehmen
Beitrag 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
Titel: Re: Feld aus dem Adressbuch übernehmen
Beitrag von: Axel am 27.09.02 - 15:11:33
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
Titel: Re: Feld aus dem Adressbuch übernehmen
Beitrag von: Fis am 27.09.02 - 16:45:01
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  :)
Titel: Re: Feld aus dem Adressbuch übernehmen
Beitrag von: Kokomiko am 28.09.02 - 14:04:38
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
Titel: Re: Feld aus dem Adressbuch übernehmen
Beitrag von: Axel am 30.09.02 - 08:39:43
Hi,

der Lösung von Kokomiko ich nichts mehr hinzuzufügen.


Axel
Titel: Re: Feld aus dem Adressbuch übernehmen
Beitrag von: Fis am 30.09.02 - 10:58:09
´Hat funktioniert. Danke euch beiden  ;D
Titel: Re: Feld aus dem Adressbuch übernehmen
Beitrag von: aba am 01.10.02 - 14:20:17
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!!!
Titel: Re:Feld aus dem Adressbuch übernehmen
Beitrag von: Kokomiko am 16.10.02 - 13:55:18
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
Titel: Re:Feld aus dem Adressbuch übernehmen
Beitrag von: aba am 16.10.02 - 15:02:12
Hallo,

vielen Dank für die Antwort, das werde ich gleich mal probieren!!!

Titel: Re:Feld aus dem Adressbuch übernehmen
Beitrag von: eknori am 16.10.02 - 15:28:05
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