ORDA: Listbox mit entitiySelection und Sortierung

Guten Morgen,

ich habe eine Eine-Tabelle mit verknüpfter Viele-Tabelle. Die Datensätze der Eine-Tabelle habe ich in einer EntitiySelection “EineAuswahl”. In einer Listbox fülle ich zum einen Spalten mit Feldern aus der Eine-Tabelle mit “This.EineFeld”. In anderen Spalten suche ich mir genau einen Datensatz aus der Auswahl der verknüpften Viele-Tabelle mit “This.Verknüpfungsname.query(“VieleFeld1 = :1”;Suchvariable).first().VieleFeld2” und zeige somit erfolgreich das gewünschte VieleFeld2 an. Soweit so gut.

Nun möchte ich aber nach den Daten aus diesem VieleFeld2 sortieren und scheitere kläglich:
EineAuswahlSortiert:=EineAuswahl.orderBy(EineAuswahl.Verknüpfungsname.query(“VieleFeld1 = :1”;Suchvariable).first().VieleFeld2) funktioniert natürlich nicht …

Kann mir jemand noch ein Ostergeschenk machen?

Vielen Dank
Jann Wegner

Das wäre ein “Order by Formula” - und das wird von ORDA derzeit noch nicht unterstützt. Ist zwar auf dem Weg (Objekt Formeln - New formula - waren dafür ein wichtiger Schritt, aber es fehlt noch mehr), das wird aber nichts mehr zu Ostern…

Nun geht es eigentlich darum wie groß EineAuswahl ist.
Wenn immer klein, lässt es sich lösen. Wenn auch mal groß, dann dafür besser bei der klassischen Arbeitsweise bleiben, zumindest derzeit.

Wenn klein, dann die Auswahl in richtiger Reihenfolge per .add() zusammensetzen.
Bei 20 oder 100 klappt das gut.
Je nach Datensatzgröße (wie große Textfelder) könnte bei Client/Server Lösungen (je nach Netzwerk) dabei aber Performanceprobleme auftreten, zumindest bis zur 17 R4. Falls dies das einzige Problem wäre, die R5 ausprobieren, die sollte das lösen (diese enthält massive Änderungen, siehe https://doc.4d.com/4Dv17R5/4D/17-R5/Entity-selections.300-4163769.en.html#4279202)

Danke für das Ostergeschenk!

Klappt bei mir wunderbar: IDs der entitiySelection und Sortierwerte in Arrays laden, Arrays sortieren und mithilfe des ID-Arrays und .add() eine neue Selection aufbauen.

Frohe Ostern