Filter
Hallo Zusammen,
komme irgendwie nicht weiter.
Habe folgendes Problen. (siehe Bild Datenmodell)
in meinem Dashboard habe ich einen Karteireiter mit Buchungen angelegt mit einer Ansicht aller getätigten Buchungen.
Jetzt würde ich mir gerne eine Suchfunktion gem der Referenzliste im Webinar. Filtern nach Kategorie ist bei mir das Feld Verwendung (nur verknüpft mit Buchung), also kein Text oder Zahlenfeld. Die Suche ansich klappt hervorragend, nur halt nicht die Filter Kategorie.
if 'Filter Kategorie' then
let myKatFilter := text('Filter Kategorie');
if Suchfeld then
let mySuchtext := lower(Suchfeld);
select Buchungen where contains(text(Verwendung), myKatFilter) and contains(lower(Verwendungszweck), mySuchtext)
else
select Buchungen where contains(text(Verwendung), myKatFilter)
end
else
if Suchfeld then
let mySuchtext := lower(Suchfeld);
select Buchungen where contains(lower(Verwendungszweck), mySuchtext)
else
select Buchungen
end
end
kann mir jemand einen Lösungsansatz nennen? Danke
Gruß
Thomas
16 Antworten
-
Hallo Thomas,
wenn die Tabelle 04 Verwendung mit Buchungen verknüpft ist, solltest du statt text(Verwendung) den Verweis aus den Textfeld in der Tabelle Verwendung nutzen. Angenommen das Feld heißt Verwendungsname. Dann wäre die Vormel von contains:
...
contains(Verwendung.Verwendungsname, myKatFilter)
...
hilft das weiter?
Leo
-
Danke Leo,
probiere ich gleich mal aus.
Danke
-
Leo.....dein Tip war wie immer Gold wert. Nochmals tausend Dank.
-
Hallo Leo,
einen kleinen Schönheitsfehler gibt es noch, sobald ich bei der Filterauswahl (Mehrfeld) mehrere Kriterien auswähle geht es nicht.
Gruß
Thomas
-
Dann würde ich es umgekehrt machen:
...
contains(myKatFilter, Verwendung.Verwendungsname)
...
Leo
-
Hallo Leo,
passt. Danke
Gruß
Thomas
-
Hallo,
auf den aktuellen Filter einer Tabellenansicht möchte ich auch gerne zugreifen, allerdings im on-click-event von einem Button. Den gleichen Code wie oben kann ich dafür nicht verwenden:
Gibt es dafür auch eine Lösung?
Viele Grüße
Olaf
-
Hallo Ronald,
in meinem minimalistischem English-Trainer mit einer einzigen Tabelle wird von den Einträgen zunächst nur die deutsche Fassung angezeigt. Der Benutzer soll mit der Schaltfläche "Show" die englische Übersetzung zur Anzeige bringen und anschließend mit den Schaltflächen "True" bzw. "False" den Zähler für eine richtige Lösung um 1 hoch- bzw. runtersetzen können. Bis dahin alles kein Problem.
Um dem Benutzer einen weiteren Klick auf den (m. E. nur etwas fummelig zu erreichenden) Standardbutton für den nächsten Datensatz zu ersparen, soll nach dem Klick auf "True" bzw. "False" gleich der nächste Datensatz selektiert werden. Die Lösung für das Problem der richtigen Sortierung habe ich gefunden. Was mir noch fehlt ist, dass ich myArr für openRecord() genauso filtern muss wie in der aktuellen Tabellenansicht - ansonsten ist der erste Datensatz in myArr nicht immer der nächste in der aktuellen Tabellenansicht.
Für jede Hilfe sehr dankbar,
Olaf
"Ansichtsfeld nur mit Inhalt 'Deutsch' zurücksetzen";MergeTxt := German;"Zähler Solved hochsetzen";if Solved < 7 then Solved := Solved + 1 end;"Nächsten Datensatz selektieren";let myFlag := false;let myN := Id;let myArr := for i in (select Sentences) order by Solved do if not myFlag and i.Id != myN then void else if i.Id = myN then myFlag := true else i end end end;openRecord(first(myArr))
Link zur Ninox-Datei in Dropbox: https://www.dropbox.com/s/yzspgsqvusf0per/EnglishTrainer.ninox?dl=0
-
Hallo Ronald,
ich suche einen Weg, wie ich die Datensätze in myArr genauso filtern kann wie in der aktuellen Formulartabellenansicht, die ich meistens nach einer einzelnen Lektion (1, 2, oder ..) oder / und auch nach einem bestimmten Lösungsfotschritt (z. B. Solved = 2).
Die Frage ist also:
Wie kann ich in dem Code zu einem Button den Filter der aktuellen Formulartabellenansicht zur Laufzeit auslesen?
Viele Grüße
Olaf
Content aside
- vor 1 JahrZuletzt aktiv
- 16Antworten
- 1339Ansichten
-
3
Folge bereits