dynamisches Auswahlfeld - Werte filtern
kann man bei der dynamischen Auswahl die "auswählbaren" Werte filtern? Also z.B.
unique((select Automodelle).Hubraum)
? Ich würde gerne die Werte nur einmal anzeigen lassen, sollten sie doppelt vorhanden sein.
LG
Johannes
11 Antworten
-
Hallo Johannes. Wenn Du das folgende Script in Dynamic values einträgst, müßte es gehen. Dir wird dann jeweils der erste Datensatz bei gleichen Werten im Feld Hubraum angezeigt. Die vielen Schleifen könnten aber Performanceprobleme bei großen Datensatzmengen machen. Gruß Mirko
*let uniqueTab := unique((select Automodelle).Hubraum);
let minNr := for i in uniqueTab do
min(for x in (select Automodelle)[Hubraum = i] do
x.number(Nr)
end)
end;
for y in minNr do
record(Automodelle,y)
end
* -
Sehr cool! Vielen Dank!
Funktioniert wie gewünscht. Von der Performance her geht es eigentlich auch ganz gut. Zumindest merke ich kein Unterschied zu dem dynamischen Auswahlfeld mit "allen" Werten.Ich hab das noch nicht so verinnerlicht, dass "for ... in ... do" genau so wie select ein Array wiedergibt...ich glaub die Lösung hilft mir bei ein paar anderen Datenbanken ebenfalls weiter.
-
Wie würde diese Formel lauten, wenn noch ein zweiter Wert davon abhängig wäre? Ich greife einfachmal ins blaue uns sage dass wenn sich die Zylinderanzahl unterscheidet ich einen Eintrag für den gleichen Hubraum aber für verschiedene Zylinder haben möchte. Vielen Dank aber schonmal für die bereits gegebene Antwort!
-
Das geht auch. Heute würde ich es so machen. Mirko
let uniqueName := unique((select Automobile).(text(Hubraum) + "#" + text(Zylinder))); for i in uniqueName do first((select Automobile)[text(Hubraum) + "#" + text(Zylinder) = i]) end
-
vielen vielen Dank das funktioniert wunderbar!
Content aside
- vor 1 JahrZuletzt aktiv
- 11Antworten
- 327Ansichten
-
4
Folge bereits