0

Filter mit mehreren Bedingungen

Liebes Forum,
ich möchte in einer Ansichtstabelle nach mehreren Kriterien filtern. Hier habe ich zwei Filter angelegt. Es sind Verknüpfungsfelder, die als Combobox angezeigt werden).

Mit folgender Formel in der Ansicht bekomme ich korrekt die Firmen (Übersetzer) mit der passenden Muttersprache angezeigt:
--- Muttersprache_Link.'Übs. Muttersprachen'.Firmen ---

Der Filter nur auf die Quellsprachen funktioniert ebenfalls für sich allein:
--- Quellsprache_Link.'Übs. Quellsprachen'.Firmen ---

Nun will ich aber beide verbinden und nur die Datensätze anzeigen, die beide Kriterien erfüllen; später noch ein paar mehr Kriterien. Mit "and" verbunden oder "or" kommt nichts heraus ...
Wie geht das bloßScreenshot_2? Danke schon mal für eure Hilfe!

12 Antworten

null
    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    hallo Anne
    Wie sieht denn dein Ansichsts-Script aus?

    • Anne.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe, das hatte ich oben reingeschrieben, oder meinst du noch etwas anderes?

    • Anne.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich habe einfach mal auf gut Glück versucht, die beiden Schnipsel mit "and" und auch mal mit "or" zu verbinden, was aber dazu führt, dass die Liste leer bleibt:

    Muttersprache_Link.'Übs. Muttersprachen'.Firmen and Quellsprache_Link.'Übs. Muttersprachen'.Firmen

    (Das Ganze geht also noch über eine Mitteltabelle, die Sprachen und Übersetzer miteinander verknüpft.)

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Anne, ich würde es mal so versuchen:

     

    let myMS := Muttersprache_Link;
    let myQS := Quellsprache_Link;
    select Firmen where 'Übs. Muttersprachen'.Muttersprachen = myMS and 'Übs. Quellsprachen'.Quellsprachen = myQS

    • Anne.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter, herzlichen Dank für deine Antwort und deinen Vorschlag! Ich habe es versucht und bekomme die Meldung:
    "Eine Tabellenspalte wurde nicht gefunden: Übs. Muttersprachen in Zeile 3"

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Anne, da kann ich jetzt nur spekulieren. Vielleicht habe ich dein Datenmodell falsch interpretiert. Ich war davon ausgegangen, dass die "Übs."-Tabellen als Zwischentabellen für eine N:M-Verknüpfung von Firmen und Sprachen fungieren:

     

    Firmen <-- (1:N) -- 'Übs. Muttersprachen' --- (N:1) --> Muttersprachen

     

    bzw.

     

    Firmen <-- (1:N) -- 'Übs. Quellsprachen' --- (N:1) --> Quellsprachen

     

    Oder hast du vielleicht den Namen der 'Übs.'-Verknüpfung in der Tabelle 'Firmen' geändert? Das kann man ja machen, aber dann entspricht er eben nicht mehr dem der verknüpften Tabelle. Und wenn wir über 'Firmen' gehen, dann müssen wir den Namen der Verknüpfung angeben.

    • Anne.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ach herrje, ich fürchte, das Zweite trifft zu, also die Namen-Änderung. Da wäre ich ja nie im Leben drauf gekommen. Das Datenmodell ist genau so, wie du schreibst. Ganz herzlichen Dank! Ich versuche mal, das zu richten, und gebe dann Rückmeldung.

    • Anne.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    🎊 Hat geklappt! Das hätte ich nie allein herausgefunden. Ich freu mich! Danke :)

    • Anne.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Vielleicht hast du noch einen Tipp für mich. Ich sehe jetzt, dass zwar beide Bedingungen berücksichtigt werden, aber das Ergebnis ist zu begrenzt. Es werden mir nämlich nur Übersetzer angezeigt, die nur diese eine Sprachkombination anbieten. Übersetzer, die mehrere Muttersprachen oder Quellsprachen haben, erscheinen nicht, auch wenn sie die gewünschte Kombi (mit) anbieten.

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Anne, stimmt, mein Fehler. Neuer Vorschlag:

     

    let myMS := record(Muttersprachen,number(Muttersprache_Link)).Sprache;
    let myQS := record(Quellsprachen,number(Quellsprache_Link)).Sprache;
    select Firmen where contains(concat('Übs. Muttersprachen'.Muttersprachen.Sprache), myMS) and contains(concat('Übs. Quellsprachen'.Quellsprachen.Sprache), myQS)

     

    Es geht vielleicht auch eleganter, aber die vorgeschlagene Lösung sollte immerhin mit als Combobox angezeigten Verknüpfungen und auch mit Dynamischen Auswahlfeldern funktionieren (wobei ich im vorliegenden Fall wohl letztere bevorzugen würde).

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    PS: Gibt es eigentlich sachliche Gründe, die dafür sprechen, zwei verschiedene Tabellen für Mutter- und Quellsprachen zu führen? Denn sonst könnte man ja auch alle Sprachen in eine Tabelle packen und diese mit den beiden 'Übs.'-Tabellen verknüpfen. Nur so als Anregung.

    • Anne.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Wunderbar, jetzt sind alle da! Ich danke dir sehr!
    Tatsächlich sind die Sprachen schon zusammen in einer Tabelle namens "Sprachen". Das hatte ich nicht richtig kommuniziert. Dein Skript funktioniert bei mir also einwandfrei, wenn ich "Quellsprachen" und "Muttersprachen" durch meine Tabelle "Sprachen" ersetze.

    Ich werde nach deinem Hinweis auch die dynamischen Auswahlfeldern mal austesten. Aber jetzt bin ich erst mal sehr froh, dass es überhaupt klappt :)