Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: sslneve am 22.06.05 - 16:38:34

Titel: Sowas wie Select a where b="xxx"
Beitrag von: sslneve am 22.06.05 - 16:38:34
Hallöchen,

ich habe zwei Listboxen, eine mit Abteilungskürzeln und die andere mit Namen. Entweder bin ich zu doof oder denke falsche oder was auch immer :) Ich hätte eigentlich nur gerne, daß nur die Mitarbeiter angezeigt werden, die in einer der Abteilungen sind, die in der Abteilungslistbox angewählt wurden. Refresh usw. ist kein Problem. Ich frage mich nur, wie ich die Choices der Mitarbeiterlistbox dergestalt dynamisieren soll. Momentan hole ich mir halt alle mit folgendem:

database := @Subset(@DbName; -1);
server := @Name([CN]; @Subset(@DbName; 1));
@Sort(@Unique(@DbColumn("":""; server:database; "All";49));[Ascending])

By the way: Ist alles in der gleichen DB. Braucht man da unbedingt @DbColumn oder @DbLookup?

Beste Grüsse
Markus
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: Semeaphoros am 22.06.05 - 16:40:15
Select alleine ist dbColumn

Select where ist dbLookup
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: sslneve am 22.06.05 - 16:48:43
hmm, sehe ich das richtig, daß @dblookup in der ersten sortierten spalte eines views sucht? Damit wäre "b" aus meinem Pseudo-SQL Query nicht frei wählbar bzw. angebbar. Sehe ich das so richtig?
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: koehlerbv am 22.06.05 - 16:50:59
@dbLookup erwartet einen eindeutigen Schlüssel (! Damit kannst Du immer nur eine Abteilung auswählen im ersten Feld) und liefert Dir dann entweder die geforderten Feldwerte der gefundenen Dokumente oder die Einträge einer von Dir spezifizierten Spalte.

Wenn Dir eine Abteilung reicht, dann geht das Verfahren sehr wohl mit @dbLookup.

Bernhard
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: Semeaphoros am 22.06.05 - 16:57:01
dbLookup nimmt die erste Spalte als Suchkriterium, das ist richtig. Eine Einschränkung ist das nicht, da Du ja die View selber aufbauen kannst.
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: sslneve am 22.06.05 - 16:59:21
Hab jetzt mal so ne View gebaut ... allerdings bräuchte ich tatsächlich die Mehrfachauswahl der Abteilungen .... schöner Sch.... :))
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: shiraz am 22.06.05 - 17:02:17
wie sieht deine Ansicht "All" aus?
 :-:
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: koehlerbv am 22.06.05 - 17:03:05
Du kannst Dir natürlich mir einer For-Schleife und mehreren @dbLookups auch das gewünschte Keyword-Item zusammenbasteln - die einzelnen Listen sind dann durch einen Doppelpunkt miteinander zu verketten.

Bernhard
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: sslneve am 22.06.05 - 17:08:34
Cool, geht auch mit mehreren Abteilungen:

database := @Subset(@DbName; -1);
server := @Name([CN]; @Subset(@DbName; 1));
@Sort(@Unique(@DbLookup("":""; server:database; "MA";fAbteilung;2;[PartialMatch]));[Ascending])

Der View MA enthält nur eine Spalte mit dem Abteilungskürzel und eine Spalte mit dem Namen des Mitarbeiters, jeweils eines/einer davon pro Zeile. Liegts etwa an [PartialMatch]? Wobei das doch eher andersrum gemeint ist, oder?
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: Semeaphoros am 22.06.05 - 17:15:41
Die Hilfe schweigt über das Thema, damit ist anzunehmen, dass ein Multivalue-Wert als Key gestattet ist.
Titel: VORSICHT! Re: Sowas wie Select a where b="xxx"
Beitrag von: ctillmanns am 23.06.05 - 09:03:07
Guten Morgen
Schon recht, das ganze hat nur einen Hacken, Dblookup stoppt die Suche beim ersten Schlüsselwert der keinen Wert zurück gibt.
Ein Beispiel:
Wenn die Ansicht a,b,d,e,f enthält und Du den lookup mit a,b,c,d,e machst, wird nur a und b zurück gegeben, aber nicht d und e, weil mit dem Schlüssel c kein Wert gefunden wurde. Deshalb schweigt die Hilfe wahrscheilich zu dem Thema. Eine For-Schleife ist wohl die bessere Lösung.
Schönen Tag noch.
Ist bei euch auch so schön warm?
Tilsche
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: Semeaphoros am 23.06.05 - 09:44:48
Das ist gut zu wissen. Danke.
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: Marinero Atlántico am 23.06.05 - 09:56:16
Hallöchen,

ich habe zwei Listboxen, eine mit Abteilungskürzeln und die andere mit Namen.
Du machst ein DBColumn auf die Abteilungskürzel für die erste Listbox.
Dann machst du in der zweiten Listbox eine Formel für die Auswahl mit einem DBLookup gegen eine Ansicht 1. Spalte: Abteilungskürzel und 2. Spalte Namen. Key ist das gewählte Abteilungskürzel der 1. Selectbox.
In der ersten selectbox hakst du "Felder bei Schlüsselwortänderung aktualisieren" in der 2. hakst du "Auswahl der Dokumentenaktualisierung aktualisieren" an.
Ausserdem benötigst du ein Errorhandling gegen null Werte in der ersten Selectbox und ausserdem muß der selektierte Wert in der 2. Selectbox entfernt werden, sobald sich die erste Selectbox ändert. As Simple as That.
Bernhardts Lösung find ich auch gut, wobei ich der Meinung bin, dass man das vielleicht auf einem DBLookup vermindern könnte, sobald man intelligent mit Mehrfachwerte getrennt anzeigen arbeitet. Bin mir da aber nicht sicher.

Gruß Axel

Axel
Titel: Re: Sowas wie Select a where b="xxx"
Beitrag von: koehlerbv am 23.06.05 - 21:52:42
Ich meine, die DesignerHelp äussert sich eigentlich eindeutig - zumindest, wenn man es mit den Einträgen zu den anderen @functions vergleicht:

Zitat
Schlüssel
Text. Bestimmt, welches Dokument für einen Wert durchsucht wird. Der Schlüssel eines Dokuments ist der Wert, der in der ersten sortierten Spalte innerhalb der Ansicht angezeigt wird. Siehe "Schlüssel angeben".

Da steht "Text". Text ist skalar. Zumindest im oben genannten Kontext, denn sonst steht immer da: "Text oder Textliste".

Wenn ich mal Zeit habe, mache ich mal einen R5-Versuch. Das könnte angesichts der Tatsache, dass das eine komplett andere formula engine hatte, könnte das interessant sein. Vielleicht ist Damien mit der R6-Engine hier über's Ziel hinausgeschossen oder hat es nicht fehlerfrei hinbekommen (daher auch keine Änderung des Hilfe-Textes). Ich bin da auf die R7 formula engine gespannt in der Hoffnung, dass die gegenwärtige engine kritisch hinterfragt wurde.

Bernhard