0

select auf Basis eines Mehrfachauswahlfeldes

Guten Abend, vielleicht kann mir jemand helfen.
Ich habe eine Tabelle mit Lebensmitteln, die jeweils einer Kathegorie zugeordnet sind.
Also Kathegorie Fisch: Flunder, Makrele, Hering
In einem Mehrfachauswahlfeld kann ich Kathegorien auswählen, z.B. Fisch und Obst

Nun möchte ich in einer Ansicht die Lebensmittel angezeigt bekommen, die der ausgewählten Kathegorie entsprechen. Also ein select mit der Bedingung "Auswahlfeld ausgewählt".
Ich bekomme es irgendwie nicht hin....

14 Antworten

null
    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Holzi,

     

    Du hast ein (einfaches?) Auswahlfeld, in dem Du die zu filternde Kategorie auswählst, welche im Mehrfachauswahlfeld enthalten ist?

     

    select Tabelle [contains(concat(chosen(Mehrfachauswahl),text(Filter))]

     

    lg, Torsten

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten, hallo Holzi,

    ich glaube, es ist umgekehrt. Das MFAF ist ein Filter und das AF liegt in der zu durchsuchenen Tabelle. Im grunde ist die Formel ja richtig, man muss nur dem Ninox sagen, wo genau das MFAF liegt:
    ---

    let myFilter:=concat(chosen(Mehrfachauswahl);
    select TABELLE [contains(myFilter,text(Kategorie))]

    ---

     

    Leo

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Guten Morgen Leo,

     

    Du hast vollkommen recht, da hab ich schlampig gelesen. Und mein Code hätte wohl auch nicht funktioniert, da text(Filter) für Ninox nicht zuordenbar wäre... :-/

     

    lg, Torsten

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Guten Morgen und Danke an Euch beide. Leo hat, was die Struktur angeht recht. Ich habe nur nach wie vor das Problem, dass es nicht funktioniert.
    1. Tabelle ARTIKEL mit Spalten Kathegorie und Artikel. Also Kathegorie Obst, Artikel Bananen, Birnen usw.
    2. (Verknüpfte) Tabelle EINKAUF mit einem MFAF "Kathegorie". In dieser Tabelle eine Ansicht von Artikel. Diese Ansicht
    soll nun über select gefüllt werden, abhängig davon, was im MFAF (in dieser Tabelle!) angehakt ist.

    Vielleicht verstehe ich's auch einfach nicht?

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin Holzi,

     

    wenn Du Leos Code an Dein Datenmodell (Feld- und Verknüpfungsnamen) angepasst hast, sollte dieser für Deine Beschreibung passen. Spukt der Code selbst einen Fehler aus?

     

    lg, Torsten

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ja, wenn ich den Code anpasse wie vorgesehen, dann sieht das so aus:

     

    Wenn ich das Symikolon eine Zeile tiefer setze, so:

     

    Die zweite Zeile müsste bei mir eigentlich auch so aussehen, da das Feld Kathegorie ein Textfeld ist.
    select TABELLE [contains(myFilter,Kategorie)]
    Das ändert aber auch nichts.

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

    Wenn 'Kategorie' ein Textfeld ist, dann vielleicht so:

     

    let myFilter := concat(chosen('Kategorie auswählen'));
    select Artikel where contains(myFilter, Kategorie)

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ja, so habe ich es auch formuliert. Funktioniert aber nicht. Das heißt es wird nur eine Auswahl angezeigt und nicht mehrere.

    Die Fehlermeldungen kamen übrigens daher, weil in Leos Code in der ersten Zeile die zweite Klammer rechts fehlte. Habe ich auch erst jetzt gemerkt.

    Aber wie gesagt, es funktioniert nicht mit der Mehrfachauswahl. Es wird immer nur eine Auswahl in der Ansicht angezeigt.

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hi Holzi,

     

    bei Deinem ersten Screenshot fehlt am Ende noch eine schließende Klammer am Ende von Zeile 1, das Semikolon gehört auch in Zeile 1. Also

     

    let myFilter:=concat(chosen('Kathegorie_auswählen'));
    select TABELLE [contains(myFilter,text(Kategorie))]

     

    lg, Torsten

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hi Holzi,

     

    Hab das mal schnell nachgebaut, Leos Code funktioniert einwandfrei:

     

    https://www.dropbox.com/s/bqk1foa9ay5gntt/Lebensmittel.ninox?dl=0

     

    Will ja nicht unken - aber nachdem schon von "Kategorie" zwei Schreibweisen in Deinem Datenmodell sind - evtl. ist woanders noch der ein oder andere Tippfehler vergraben??

     

    lg, Torsten

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Asche auf mein Haupt. Ihr habt natürlich recht.

    Abgesehen von der schließenden Klammer lag das "Problem" ganz woanders:
    Das Ansichtfeld in Ninox öffnet in der Ausgangsdarstellung nur 6 Zeilen. Wenn man aber wie ich in jeder Kathegorie weit über 50 Artikel hat, wird auch bei funktionierender Formel natürlich nur EINE KATHEGORIE angezeigt.
    Ansichtfeld runterziehen, dann sieht man das, was man sehen wollte.

    Peinlich, peinlich ...

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

    Autsch. Normalerweise wird in der Summenzeile der Spalte 'Nr' automatisch "Anzahl" eingestellt. Hat man die Spalte ausgeblendet, sollte man das manuell bei einer anderen Spalte machen, dann sieht man immer, wieviele Datensätze dargestellt werden. Nur so als Tipp. 

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    ;-)

    DER Fehler passiert Dir sicher kein zweites mal …

    • Holzi
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ja, Danke für den Tip.

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 14Antworten
  • 2013Ansichten