mehrere Filter in einer Ansicht Möglich?
Hänge zur Zeit fest. Habe eine Tabelle wo ich eine Verknüpfung habe zur Hockey Tabelle (Feld Stato) und (Feld Cognome) In einer leeren Tabelle habe ich mir ein Dropdown mit Status (wird Stato abgerufen) zusammen gebaut funktioniert bei mir. Zusätzlich habe ich ein Suchen Feld zum Suchen in der Tabelle Hockey (Feld Cognome) funktioniert auch die Suche. Ich versuche vergebens dass mir entweder eine oder beide Suchen zusammen arbeiten.
Es wird in einer Ansicht wiedergegeben. Es klappt nur die Letzte Suche wie kann ich es schreiben das entweder beide zugleich den Wert suchen oder eben nur eine Suche (andere leer). Ist es Möglich eine Suche auszuführen und anschliessend in der Ansicht weiter zu filtern? oder sollte ich versuchen die View in eine Temporäre Tabelle zu schreiben (kenne aber nicht den Befehl wie man dass machen kann, würde mich interessieren vielleicht mit einen Button der den gesamten Inhalt überträgt von der Ansicht vieleicht kann es mir einer schreiben)
Ist in einer Ansicht möglich mehrere Filter einzelen als Button aufzurufen?
let myTyp := Status;
if myTyp = 1 then
(select Hockey)[text(Stato) = "Pagata"]
else
if myTyp = 2 then
(select Hockey)[text(Stato) = "Accettata / Documentazione ricevuta"]
else
if myTyp = 3 then
(select Hockey)[text(Stato) = "Rifiutata"]
else
if myTyp = 4 then
(select Hockey)[text(Stato) = "In pagamento"]
else
if myTyp = 5 then
(select Hockey)[text(Stato) = "Inviata / In attesa di documentazione"]
else
if myTyp = 6 then
(select Hockey)[text(Stato) = myTyp]
end
end
end
end
end
end;
hier liegt mein Problem wie kann ich beide Suchen kombinieren oder auch eine leer lassen?
let mySuche := lower(Name);
if Name != null then
select Hockey where contains(lower(Cognome), mySuche)
else
select Hockey
end
Vielen Dank für Hilfestellungen und sorry wegen der vielen Fragen Grüsse Claus
3 Antworten
-
Hallo Claus, mein Vorschag wäre, die Status-Bezeichnungen "Pagata", "Accettata ...“ usw. auch wieder genau so als Texte in das Filter-Auswahlfeld zu schreiben. Dann wäre auch die Abfrage relativ überschaubar:
let myStatus := text(Status);
let myName := lower(Name);
if Status and Name then
select Hockey where text(Stato) = myStatus and contains(lower(Cognome), myName)
else
if Status then
select Hockey where text(Stato) = myStatus
else
if Name then
select Hockey where contains(lower(Cognome), myName)
else
select Hockey
end
end
end
-
Macht genau das was es soll. Vielen Danke
Würde mir bitte jemand diese Punkte erklären Danke
1.Ist es Möglich eine Suche auszuführen und anschliessend in der Ansicht weiter zu filtern?
2. Die View in eine Temporäre Tabelle zu schreiben (kenne aber nicht den Befehl wie man dass machen kann, würde mich interessieren vielleicht mit einen Button der den gesamten Inhalt überträgt von der Ansicht vielleicht kann es mir jemand kurz Erläutern)
Vorerst vielen Dank Claus
-
Zu 1: Stufenweises Filtern ist m. W. nicht möglich, aber wenn man wie oben mehrere Such-/Filterfelder kombiniert, hat man ja einen ähnlichen Effekt. Außerdem kann man auch in eingebetteten Tabellen-Ansichten für jede Spalte einen Filter setzen, gruppieren usw.
Zu 2.: Das Schreiben der gefilterten Ansicht in eine temporäre Tabelle wäre kein Problem. Man greift dabei allerdings nicht auf die Ansicht zu, sondern direkt auf die darin gezeigte Tabelle und nutzt dieselben Filter wie bei der Ansicht. Wobei die temporäre Tabelle, nennen wir sie mal TEMPTABELLE, mit den benötigten Feldern natürlich bereits existieren müsste (Tabelle 'Hockea' einfach duplizieren). Dann könnte man es so versuchen:
let myStatus := text(Status);
let myName := lower(Name);
for xy in if Status and Name then
select Hockey where text(Stato) = myStatus and contains(lower(Cognome), myName)
else
if Status then
select Hockey where text(Stato) = myStatus
else
if Name then
select Hockey where contains(lower(Cognome), myName)
else
select Hockey
end
end
end
let newRec := create TEMPTABELLE
newRec.(
Stato := xy.Stato;
Cognome := xy.Cognome;
FELD3 := xy.FELD3;
FELD4 := xy.FELD4;
usw. ................
)
end
FELD3 und FELD4 stehen hier stellvertretend für alle Felder, die in die temporäre Tabelle übertragen werden sollen. Die Liste kann ggf. also deutlich länger werden.
Ich habe das allerdings jetzt nicht getestet und kann deshalb nicht sicher sagen, ob die xy-Schleife mit den verschachtelten if-Abfragen tatsächlich so funktioniert. Am besten, einfach mal ausprobieren. Ansonsten müsste man den Rattenschwanz nach 'newRec' halt nach jedem 'select' wiederholen.
Content aside
- vor 4 JahrenZuletzt aktiv
- 3Antworten
- 1710Ansichten