0

Dynamische Tabellen in Ansichten filtern

Es gibt eine Tabelle mit Werte

Wert 1

Wert 2

Wert 3

...

 

Über eine Dynamische Auswahl werden die Werte auswhlbar gemacht.

 

Nun wird die Tabelle in einer Ansicht dargestellt, bei "normalen" Auswahlfälter kann gefiltert werden, etwa Wert 1 und/ oder Wert 2 - bei der dynamischen Auswahl scheint es nicht möglich zu sein. Welche Möglichkeiten gibt es um zu filtern?  

8 Antworten

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

    Ich habe hier dein Beispiel gefunden: https://www.dropbox.com/s/682yh06ze7au34o/AnsichtTeilDynamisch.ninox?dl=0

    Aber das ist ziemlich kompliziert, kann nicht ganz folgen. 

    Prinizipiell suche genau hiernach, jedoch gibt es keine Mehrfach als option, man filtert lediglich nach einem dynamischen Feld

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo
    Gib doch bitte mal ein konkretes Beispiel was gemacht werden soll.

    Wie sieht die Ansicht aus? (Spalten)
    Was soll gefiltert werden? Woher kommen die Filterargumente und wie sehen sie aus?
    Wie soll die Filterabfrage aussehen?

    Ich habe die DB um Vergleiche erweitert:
    Bsp.: RecordWert </>/= Wert1 and/or RecordWert </>/= Wert2 (Datum >= 12.03.2021 and Datum <= 17.05.2021)

    Für jedes spezielle Filterargument musst du dir eine eigenen Filterabfrage bauen.
    Der Vorteil der Beispiel-DB liegt darin, dass man den Filter auf verschiedene Spalten der Ansicht setzen kann und nicht für jede Spalte eine eigene Ansicht zur Verfügung stellen muss.

    https://www.dropbox.com/s/fk4icmazf2thwpo/AnsichtTeilDynamisch_V1-2.ninox?dl=0

    • Owner
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich habe hier das ganze beispielhaft nachgebaut: 

    https://www.dropbox.com/s/560ef3amtgf8gfq/Beispiel.ninox?dl=0

    Beispiel

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo
    Für einen ausgewählten Wert lautet das Script der Ansicht:

    if 'Filter Tabelle 1 Wert' then
    let vBedingung := text('Filter Tabelle 1 Wert');
    select Daten where text('Aus Tabelle 1') = vBedingung
    else
    select Daten
    end

    Daa funktioniert nicht für mehrere ausgewählte Werte.
    Du has nur ein dyn. Auswahlfeld bei dem du nur ein Item auswählen kannst.
    Wenn du mehrere Items auswählen möchtest, musst du ein dyn. Mehrfachauswahlfeld einrichten.
    Dann stimmt das Script nicht mehr.
    Für jeds zusätzliche Item muss die Bedingung erweitert werden.
    1 Item: where Feldname = Wert1
    2 Items: where Feldname = Wert1 and/or Feldname = Wert2. usw.
    Das Musst du dir dann auss den Werten des Auswahlfeldes bauen.
    Die Beispieldatenbank macht dieses.
    In der Version 3 existiert jetzt auch derVergleich 'Wähle alle Shops, sie der Auswahl entsprechen und filtere das Ergebnis nach dem Preis </=/> Wert X.

    https://www.dropbox.com/s/r3qmywttyjd6utf/AnsichtTeilDynamisch_V1-3.ninox?dl=0

    • Owner
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke Uwe,

     

    nein, es werden nicht mehrere Werte "gefiltert" - Lediglich ein Wert aus dem Auswahlfeld, so wie in meinem Beispiel.

    if 'Filter Tabelle 1 Wert' then
    let vBedingung := text('Filter Tabelle 1 Wert');
    select Daten where text('Aus Tabelle 1') = vBedingung
    else
    select Daten
    end

    Da stimmt etwas nicht, der code wird da nicht angenommen Bildschirmfoto 2022-01-11 um 12.46.46

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich habe es auf dein Beispiel angewandt.
    'Daten' ist der Name der Tabelle. Da musst du stattdessen den Namen deiner Tabelle nehmen der in der Ansicht dargestellt wird.

    • Owner
    • vor 3 Jahren
    • Gemeldet - anzeigen

    YES!! Es funktioniert genau so wie ich es mir gedacht habe. Vielen Vielen DANK Uwe!!!