Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Alexis am 24.05.05 - 14:49:36

Titel: Selektion bei Mehrfachwerten
Beitrag von: Alexis am 24.05.05 - 14:49:36
Hallo Forum,

ich habe eine „Knobelei“, bei der ich beim besten Willen nicht weiter komme. Wäre schön, wenn jemand mir auf die Sprünge hilft.

Problem: Gegeben ist ein Feld mit Mehrfachwerten, das für Filterfunktionen der Dokumente einer View verwendet wird. Werte darin sind z.B.: TAxxxx, BRxxx, TCxx (x sind willkürliche Zeichen). Bisher war die Selektion einfach durch @Contains(Feldname;“TA“) realisiert worden.

Nun kommt neuerdings hinzu, dass das Feld auch den Wert Txxx beinhalten kann und die Selektion von Dokumenten sowohl TAxxxx als auch Txxx – gekennzeichnete Dokumente beinhalten soll, die demgemäß einer gemeinsamen Kategorie angehören.

Anm.: Die Funktion @Contains(Feldname;“T“) scheitert natürlich, weil TCxx ausgeschlossen werden soll.

Habt Ihr eine Idee, wie man vorgehen kann?

Alexis
Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: Wirsing am 24.05.05 - 14:54:24
Hallo Alexis,

vielleicht klapp es ja damit:

( @Contains(Feldname;“T“) & !@Contains(Feldname;"TC") )


Grüsse

Holger
Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: diali am 24.05.05 - 14:59:12
ich finde es gefährlich mit @Contains zu arbeiten, weil ein BRxTA auch ein True bei @Contains(Feldname; "TA") gibt.

wahrscheinlich mal es geht um die Ansichtsauswahl, dann probiers mal damit:
SELECT @Left(Feldname;2) != "TC" & @Left(Feldname;1) = "T"
Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: Alexis am 24.05.05 - 15:34:29
Hallo Dirk, hallo Holger,

Danke für eure Mühe, leider klappt es auch so nicht.

Grund ist (vielleicht war meine Beschreibung zu kurz), dass auch bei Auftreten von TCxxx und Txxxx gemeinsam im Mehrfachfeld eines Dokumentes dieses bei der Selektion enthalten sein soll.

Alexis
Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: diali am 24.05.05 - 15:40:30
Dann musst Du Einträge zählen und die Anzahl vergleichen.

Select @Member( "TC" ; @Left(Feldname;2)) < @Member( "T" ; @Left(Feldname;1));

Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: datenbanken24 am 24.05.05 - 17:33:39
Pack die Formel von Antwort #2 in ein @Transform.

Die Ergebnisliste erhält dann "True" und "False" Elemente;
Wenn ein "True" in der Liste dabei ist, gehört das Dokument in die View-Selektion.

Gruß,
Uwe
Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: Alexis am 25.05.05 - 10:58:12
Hallo Uwe,

dickes Kompliment: mit der @Transform-Funktion klappt's  :D.

Vielen Dank für Deine Hilfe. Da wäre ich nie drauf gekommen.

Alexis

Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: Axel am 25.05.05 - 11:51:32
Hi,

wie sieht denn deine Select-Formel nun aus. Ich kann mir das mit dem @Transform noch nicht so richtig vorstellen.

Ist bestimt auch für die Allgemeinheit von Interesse.

Danke.

Axel
Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: Alexis am 25.05.05 - 12:11:42
Hallo Axel,

Du hast natürlich Recht mit Deinem Hinweis.

Hier also die Funktion, wie sie in meiner Applikation läuft:

SELECT (@Transform(Bereich;"Var";@Left(Var;3) = "BRG" | @Left(Var;2)="TD" | (@Left(Var;1) = "T" &! @Left(Var;2) = "TL"))

Die Selektion lässt Dokumente zu mit: "BRG", "TD" und "T" nicht jedoch Dokumente mit "TL" am  Anfang der Werte im Feld "Bereich".

Offen gestanden, durchschaue ich den Algorithmus der Funktion (noch) nicht , in der praktischen Anwendung klappt es jedoch.

Alexis
Titel: Re: Selektion bei Mehrfachwerten
Beitrag von: datenbanken24 am 25.05.05 - 13:04:30
@Transform geht einfach JEDES ELEMENT der Ausgangsliste EINZELN durch
und wendet darauf die angegebene @Formel an.

Für jedes Einzelement gibt die Formel in diesem Fall @True oder @False zurück,
so dass am Ende von @Transform eine Ergebnis-Liste analog der Ausgangsliste herauskommt, in diesem Fall mit @True oder @False Elementen.

Select selber kann mit Listen umgehen,
das heißt wenn mindestens einmal @True in der Ergebnisliste vorkommt, gibt Select @True zurück und das Dokument kommt somit in die View-Selektion.

Das entscheidende an @Transform ist also das EINZELNE Durchgehen der Listenelemente.

Gruß,
Uwe