Ansichtstabelle filtern mit optionalen Filtern
Eines meiner Lieblingsthemen bei Ninox ist wohl das Filtern von Ansichtstabellen und anschließend das automatische befüllen einer neuen Tabelle anhand der eingestellten Filter.
Aktuell lasse ich die Ansicht von PROJEKTE TODOs wie folgt anhand PHASE und QUALITÄT filtern (beides Mehrfachauswahlfelder):
let my := this;(select 'Projekte ToDos')[let myFlag1 := false;for i in my.numbers(Phase) dofor j in numbers(Phase) doif j = i then myFlag1 := true endendend;let myFlag2 := false;for i in my.numbers('Qualität') dofor j in numbers('Qualität') doif j = i then myFlag2 := true endendend;(myFlag1 or not my.Phase) and (myFlag2 or not my.'Qualität')]
nun möchte ich ein weiteres Mehrfachauswahlfeld INSTRUMENTE mit einbeziehen. Dieses soll aber nur berücksichtigt werden, wenn in den jeweiligen Zeilen aus PROJEKTE TODOs der 'INSTRUMENTE FILTER' = true ist. Wenn != true soll INSTRUMENTE ignoriert werden.
komme da mit dem verschachteln der if-Funktion nicht hin...
Danke für Hilfe :)
1 Antwort
-
Scheinbar habe ich die Lösung durch ausprobieren gefunden: Falls jemand ähnlich komplexe Ansichts-Filter bauen möchte:
let my := this;(select 'Projekte ToDos')[let myFlag1 := false;for i in my.numbers(Phase) dofor j in numbers(Phase) doif j = i then myFlag1 := true endendend;let myFlag2 := false;for i in my.'Qualität' doif i = number('Qualität') thenmyFlag2 := trueendend;(myFlag1 or not my.Phase) and (myFlag2 or not my.'Qualität') and 'Instrumente Filter' != true];(select 'Projekte ToDos')[let myFlag1 := false;for i in my.numbers(Phase) dofor j in numbers(Phase) doif j = i then myFlag1 := true endendend;let myFlag2 := false;for i in my.'Qualität' doif i = number('Qualität') thenmyFlag2 := trueendend;let myFlag3 := false;for i in my.numbers(Instrumente) dofor j in numbers(Instrumente) doif j = i then myFlag3 := true endendend;(myFlag1 or not my.Phase) and (myFlag2 or not my.'Qualität') and (myFlag3 or not my.Instrumente) and 'Instrumente Filter' = true]
Content aside
- vor 5 JahrenZuletzt aktiv
- 1Antworten
- 800Ansichten
