Показать сообщение отдельно
Старый 06.05.2008, 00:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,477 / 846 (79) +++++++
Регистрация: 28.10.2006
jinx: Speichern von Optionswerten
H?ufig werden Optionen (Ja/Nein-Fragen) in Microsoft Dynamics AX durch ein CheckBox Control und einem entsprechendem Feld einer Tabelle abgebildet.
Ein gutes Beispiel hierf?r ist die Maske „Lagerparameter“, Reiter „Lagerungsdimensionen“. Hier kann eingestellt werden, welche Lagerungsdimension wo im System angezeigt werden soll. Zur Speicherung der gew?hlten Einstellungen wird die Tabelle „InventDimSetupGrid“ verwendet. Diese Tabelle enth?lt f?r jede Option jeweils ein Feld (abgeleitet vom Enum „NoYes“).
Diese Art der Speicherung von Optionswerten ist sicherlich sehr leicht zu verstehen und auch sehr einfach zu erstellen. Da aber f?r jede Option ein Feld in der Tabelle angelegt werden muss, kann dies relativ zeitaufwendig sein.
Es besteht aber die M?glichkeit, Optionswerte in nur einem Feld zu speichern. Diese Art der Speicherung kann unter Umst?nden sogar als die elegantere angesehen werden, da z.B. f?r einen Datensatz weniger Speicher in der Datenbank ben?tigt wird.
Um dies zu realisieren, wird als erstes ein Feld vom Typ „int“ in der Tabelle ben?tigt. Dieses Feld dient als Datenspeicher f?r alle ben?tigten Optionswerte (Ja oder Nein). Jedes Bit dieses „int“ Feldes stellt genau einen Optionswert und somit eine Option dar. Um nun die gew?hlten Werte der Optionen speichern zu k?nnen, m?ssen diese mit Bit-Operationen (right / left shift, binary and, etc.) in das „int“ Feld geschrieben werden.

Das Feld "bitMask" wird in dieser Darstellung als Datenspeicher der Optionswerte verwendet.

Auf einer Maske werden alle Optionen als einzelne CheckBoxen bereit gestellt.
Da diese Art der Speicherung in Dynamics AX nicht besonders oft verwendet wird und Quellcode oft mehr sagt als (nur) ein langer Artikel, habe ich ein kleines „Tutorial“ erstellt, um die ben?tigten Schritte zu beschreiben.
SharedProject_AKU_EnumControl_Frm.rar (2,03 KB) Eine Erkl?rung aller Bit-Operatoren ist im Microsoft Dynamics AX Developer Center zu finden.

Es wird keine Haftung oder Gew?hrleistung auf die Richtigkeit der gemachten Angaben gegeben. Die Verwendung erfolgt auf eigene Gefahr. Copyright © Axel K?hn (Aku's AX Blog, http://blog.ak-home.net) and Mathias F??ler (jinx's AX Blog, http://starside.eu)

More...