Wie bereits bekannt, kann mit Dynamics NAV 2013 mit einem einfachen Klick auf die Überschrift die Maske umsortiert werden. Dieses Feature war ein Meilenstein, da der Schlüssel nicht an der Tabelle existieren musste. NAV kann also ab der Version 2013 die Sortierung direkt in der Ansicht ändern.
Dieses Feature steht uns in fast allen Pages als Standard zur Verfügung. Es gibt nun aber Pages in denen ich das persönlich doch gerne abschalten möchte. Darunter fallen alle Pages mit aktivierter AutoSplitKey Eigenschaft. Das liegt nämlich daran, dass ich beim Einfügen von neuen Zeilen ein Problem bekomme, wenn die Maske nicht nach dem Feld “Zeilennr.” sortiert ist. Man kennt das Phänomen aus beispielsweise aus dem Verkaufsauftrag. Normalerweise ist die Maske nach “Zeilennr.” sortiert:
Zum besseren Darstellung habe die Zeilennr. als erstes Feld eingeblendet! Sortiere ich nun nach Beschreibung. dann sieht die Maske so aus:
Nun fällt schon auf, dass die erste Zeile die Zeilennr. “40000” und die zweite Zeile die Zeilennr. “20000” aufweist. In diesem Fall wird der AutoSplitKey schief gehen, wenn ich zwischen der ersten und der zweiten Zeile einen neuen Datensatz einfügen möchte.
Das kann nun in jeder Erfassungsmaske passieren. Das Problem ist nun folgendes: Normalerweise wird die Zeilennr. nicht als Feld angezeigt. In der Regel ist das Feld auch vollkommen uninteressant für den Endanwender. Es gibt nun zwei Möglichkeiten:
- Maske neu öffnen (stellt die Standardsortierung wieder her)
- Anpassungen deaktivieren am Profil: Der NAV Standard gibt mir die Möglichkeit, dass ich am Profil einen Haken setzen kann, dass persönliche Anpassungen des Benutzers verhindert werden. Das finde ich persönlich nicht ausreichend, weil ich möchte, dass jeder Benutzer seine Spalten, Felder oder Aktionen so anordnet, wie es die Person für richtig hält.
Ich möchte eigentlich nur den Fehler mit dem AutoSplitKey verhindern. Dafür gibt es einen einfachen Trick. In Masken mit Einrückung steht das Feature nämlich nicht zur Verfügung. Ich muss also nur eine Einrückung simulieren um die Sortierung abzuschalten, aber alle anderen Möglichkeiten zu erhalten. Dafür hinterlege ich in der Subpage auf der RepeaterGroup die Eigenschaft “IndentationColumnName”. Dabei kann ein beliebiger Wert eingetragen werden (beispielsweise “1”):
Nach dem Speichern des Objekts ist die Sortierung nur für diese Page deaktiviert. Alle anderen Features, wie Spalten auswählen, Fixierung oder die Schnelleingabe kann der Anwender selbst steuern. Die Maske hat trotzdem keine Einrückung, verhält sich aber wie die Sachkontenübersicht. Dort kann ich auch nicht umsortieren, da die Maske eine Einrückung berücksichtigt. Es ist sicherlich nicht die schönste Variante, aber es ist eine Möglichkeit, dieses Problem zu lösen.
Probiert es einfach mal aus!
Pingback: Interaktive Sortierung in Pages mit AutoSplitKey Eigenschaft - Robert's Dynamics NAV Entwickler Blog - Dynamics 365 Business Central/NAV User Group - Dynamics User Group