Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Catrex am 07.05.04 - 10:55:47
-
Hallo, ich hätte da mal eine Frage.
Und zwar habe ich hier eine Dialogliste mit der Option "Ansichtsdialogfeld für Auswahl verwenden". So, schön und gut. Dort kann bzw. soll der Benutzer nun einen Namen eines "Ansprechpartners" auswählen. Wenn dies geschehen ist, sollen diverse Informationen (Tel-Nr, Fax, E-Mail) dieser Person in entsprechenden Feldern rechts neben dieser Dialogliste angezeigt werden. Diese Werte lasse ich mir im moment über einen DBLookup, der den ausgewählten Wert aus dem Dialogfeld mit einer ensprechenden Ansicht vergleicht in die Felder schreiben. Das klappt eigentlich wunderbar und ich bin auch froh das ich das schonmal hinbekommen habe. Nur jetzt der Haken:
Es existieren leider immer nur die Nachnamen, und wenn ich dann einen DBLookup nehme, der nimmt dann den ersten Treffer. Das kann sein das ich einen Herrn Meier von der Firma XY ausgewählt habe aber dann in Details eines Herrn Meier von der Firma ABC bekomme. Lässt sich sowas verhindern ? Weil soweit ich weiss kann doch der DBLookup nur einen Wert vergleichen oder täusche ich mich da ?
Wäre für eure Hilfe sehr dankbar.
mfg & ein schönes Wochenende
Sebastain ! ! !
P.S.: Zur Verdeutlichung meiner sicherlich etwas schwammigen Erklärung habe ich noch einen Screenshot angehängt !
-
Dann bau dir die View doch einfach so um, daß der Wert in der View eindeutig wird (z.B. Nachname und Vorname verketten).
-
Ja das würde ich ja gerne machen nur hat die Sache einen Haken. Es existieren keine Vornamen zu den einzelnen Personen.
Ist es denn möglich in einer Dialogliste nur eine bestimmt "Auswahl" anzeigen zu lassen ? Also z.B. nur die Mitarbeiter einer bestimmten Firma oder dergleichen ? Ich habe hier auch was von @Picklist gelesen aber die Hilfe ist diesbezügich auch ein wenig mager.
-
Du könntest das folgendermaßen machen :
Bau dir in die Ansicht eine zusätzliche Spalte mit ein, die die DokID enthält, die ist eindeutig.
Dann machst Du aus der Dialogliste ein normales Feld und packst eine Schaltfläche dahinter.
Die Schaltfläche erzeugt dann eine Picklist mit der oben abgepaßten View und Du läßt dir den Wert der Spalte mit der DokID zurückgeben.
Über diesen Wert holst Du dir dann per @DBLookup die entsprechenden Werte aus einer Ansicht, die nach DokID sortiert ist (mußt Du evtl. zusätzlich anlegen) und schreibst die Werte in die entsprechenden Felder.
-
PickList ist eine Variante. In einer speziellen Ansicht könntest Du Dir in Spalte 1 die Namen, in Spalte 2 die Firma anzeigen lassen - und in einer versteckten dritten Spalte die DocumentUniqueID des Dokuments. Genau die holtst Du Dir dann als Rückgabe und kannst so mit GetDocField auf die Felder des gewählten Doccs zugreifen.
Bernhard
-
Ah, Driri war schneller mit fast dem gleichen Vorschlag :D
Bernhard
-
Hehe, normalerweise bin ich immer zweiter Sieger ;)
-
Wurscht. Ist ja kein Wettkampf hier ;)
Bernhard
-
Wobei Deine Variante mit dem @GetDocField die schönere ist. Hab ich noch nie ausprobiert, werd ich mir für die Zukunft merken :D
-
Sie ist vor allem eine der performantesten Methoden (im Gegensatz zu dbLookup), da Notes über die UNID sofort "weiss", wo das Dokument 'rumlungert.
Bernhard
-
Eben, drum :)
-
Mmmmh, hört sich gut an. Aber ich bin halt ein wenig doof muss ich zugeben. Kann mir denn dann mal einer sagen wie ich an diese Dokumenten ID komme ?
Normalerweise doch über "@documentuniqueID" oder wie das heisst. Aber das muss ich doch dann in der Maske oder so einbauen oder wie kann ich mir die ID dann in der Ansicht anzeigen lassen ?
Ich weiss das solche Fragen mit der Zeit nervig werden aber ich weiss ja sonst auch nicht wen ich noch fragen soll. Ich habe selber schon kaum noch Motivation hier an einer Datenbank rumzubasteln obwohl ich da kaum mehr Ahnung von habe als die Entwickler dieser Datenbank. Aber da muss ich jetzt noch die verbleibenden 15 Wochen meines Praxissemsters durch. Ich baue da noch ein wenig auf die Unterstützung dieses Forums.
Schmeisse dann auch anschliessend ne Kiste Bier ! ;D ;D ;D
-
@Text (@DocumentUniqueID) als Spaltenformel.
-
So Montagmorgen 11:15. Das Problem ist denke ich mal gelöst. Danke für den Schupser in die richtige Richtung. Das mit der ID hätte mir auch selber noch einfallen können !
Also nochmal danke.
Sebastian denkt sich: "Ist da etwa wirklich ein Licht am Ende des Tunnels" ;D
-
Sebastian denkt sich: "Ist da etwa wirklich ein Licht am Ende des Tunnels"
Jo, das ist der Zug aus der Gegenrichtung ;D
-
Sie ist vor allem eine der performantesten Methoden (im Gegensatz zu dbLookup), da Notes über die UNID sofort "weiss", wo das Dokument 'rumlungert.
Bernhard
Yoo, aber leider funktioniert das nicht datenbankübergreifend. Will man auf Dokumente in einer anderen DB zugreifen, dann bleibt doch wieder nur DBLookup.
Axel
-
Ich habe doch nochmal was zum nachhaken gefunden. Wenn ich eine Schaltfläche nehme und dahinter eine Funktion @picklist (...) packe. wie kann ich dann den Rückgabewert weiter verarbeiten ? Weil so eine Schaltfläche hat ja keinen Namen oder so ?
-
Hi,
du kannst z.B. den Rückgabewert von @Picklist in ein Feld schreiben.
FIELD Feldname := Feldname;
value:=@Picklist(....;
@SetField("Feldname"; value);
oder den Rückgabewert in einem DBLookup verwenden.
Das erfolgt alles im Code der dem Button hinterlegt ist.
Axel