Sortierung einer Listbox auf Basis verknüpfter Felder

Hallo,
gegeben sei eine Listbox aktueller Auswahl in der eine Spalte ein verknüpftes Feld anzeigt.
Die Sortierung der Spalte mit dem verknüpften Feld funktioniert nur, wenn die Verknüpfung auf automatisch steht.
Leider ist das in diesem Fall jedoch nicht möglich, da dieser Automatismus in einem anderen Formular nicht benutzt werden kann.

Welche Möglichkeit zur Sortierung einer LB mit manuell verknüpftem Feld gibt es?
4D v16 R4 64bit

Danke für eine Hilfestellung!

Sie müssen den On Header Event verwenden und dort selbst sortieren.

Das ist bei Formeln wichtig, weil je nach Inhalt dies dadurch deutlich schneller gehen kann. Berechnet eine Formel z. B. Vorname + Nachname, kann man direkt nach Nachname sortieren und so den Index verwenden.

Beispiel für Form Event=On Header click:

<code 4D>
$varptr:=OBJECT Get pointer(Object current)
$name:=OBJECT Get title($varptr->)
If ($name=“MeinHeaderNameNachDemIchSorierenMöchte”)
If ($varptr->=1) // ab/aufsteigend
ORDER BY([Kunden];[Kunden]Service;<)
$varptr->:=2 // setzt das Sortiericon im Header
Else
ORDER BY([Kunden];[Kunden]Service)
$varptr->:=1
End if
$0:=-1
End if
</code 4D>

Hallo Herr Maul,
vielen Dank für Ihre Erläuterung, allerdings geht sie nicht auf das Problem eines verknüpften Datenfeldes ein, dass keine automatische Relation besitzt.

Haben Sie dafür auch einen Tipp?

Aktivieren Sie die Relation wie im Handbuch erläutert:
http://doc.4d.com/4Dv16R5/4D/16-R5/SET-FIELD-RELATION.301-3481507.de.html

Alternativ, falls es kein klares Regelwerk gibt (wenn Feld1=1 dann ist Feld2 ansonsten Feld3 der Foreign Key), dann Order by Formula verwenden.

Hallo Herr Maul,
vielen Dank, das war genau, was ich suchte!