Aufeinanderfolgende Elemente einer Tabelle auflisten
Ich habe eine Tabelle mit allen meinen Terminen und möchte gerne die nächsten fünf getrennt in einer Liste auflisten.
Abfragemerkmal ist das Datum, Problem: Es ist möglich, dass an einem Datum kein EIntrag ist, ein einziger oder gleich mehrere. Das heißt mit der Abfrage first(where Datum) funktioniert es nicht.
Jemand eine Idee??
4 Antworten
-
Hallo Christian, mit einer Schleife geht das bestimmt sehr viel eleganter und flexibler, aber das habe ich offen gestanden auf die Schnelle nicht hinbekommen. Deshalb hier unter dem Motto “Besser als nix” erst mal eine stilistisch fragwürdige Idee, die aber immerhin funktionieren sollte (als Code für ein Gestaltungselement Ansicht):
let myA := ((select Termine where Datum >= today()) order by Datum).number(Nr);
select Termine where number(Nr) = item(myA, 0) or number(Nr) = item(myA, 1) or number(Nr) = item(myA, 2) or number(Nr) = item(myA, 3) or number(Nr) = item(myA, 4)
Vielleicht findet sich noch jemand, der das verbessert.
-
Hi Christian. Nr. 1 ist für ein f(x)-Feld, N2. für eine Ansicht. Müßte klappen. Also 3 Varianten mit Copytexters.
*1
let Q := for i in (select TERMINTABELLE)[Datum > today()] order by Datum do
i.TERMINFELD
end;
for j in range(0, 5) do
item(Q, j)
end
*2
let Q := ((select TERMINTABELLE)[Datum > today() and TERMINFELD != null] order by Datum);
for j in range(0, 5) do
item(Q, j)
end
*
Mirko
-
Vielen Dank! Mit dem item-Befehl hatte ich noch gar nicht gearbeitet - klasse, was mit Ninox alles geht!
-
Ach, kuck an. Ich dachte, in Ansichten würden nur select-Anweisungen ausgewertet. Arrays mit IDs gehen aber auch. Hatte ich gar nicht probiert. Wieder was gelernt.
Content aside
- vor 4 JahrenZuletzt aktiv
- 4Antworten
- 516Ansichten