AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: За рубежом > DAX auf Deutsch
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 06.05.2008, 00:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,644 / 848 (80) +++++++
Join Date: 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...
Old 13.05.2008, 15:35   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Join Date: 09.07.2002
Location: Parndorf, AT
Аксель предлагает сохранять длинный ряд из чекбоксов в одной битовой маске.
Old 13.05.2008, 17:16   #3  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by EVGL View Post
Аксель предлагает сохранять длинный ряд из чекбоксов в одной битовой маске.
чтобы получить кучу геморроя с обслуживающим кодом, отсутствием индексов, отстутсвием фильтрации и сортировки
А также с ограничением на максимум 32 флага.

как это успешно реализовано на примере поля inventDimFixed, которые хранят галочки по выбранной и/или используемой аналитике
__________________
полезное на axForum, github, vk, coub.
Old 13.05.2008, 17:45   #4  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Join Date: 09.07.2002
Location: Parndorf, AT
Quote:
Originally Posted by mazzy View Post
А также с ограничением на максимум 32 флага
64 в 4.0

Можно подумать, что в решении с N полями не будет обслуживающего кода...
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
jinx: Anzeige von Lagerdimensionen auf Masken Blog bot DAX auf Deutsch 0 14.03.2009 01:06
jinx: Microsoft Dynamics AX API – Teil 3 „Buchen von Auftr?gen“ Blog bot DAX auf Deutsch 0 26.10.2007 03:34
jinx: Microsoft Dynamics AX API – Teil 2 „Erstellen von Bestellungen“ Blog bot DAX auf Deutsch 1 04.09.2007 11:46
jinx: Microsoft Dynamics AX API – Teil 1 „Erstellen von Auftr?gen“ Blog bot DAX auf Deutsch 0 17.08.2007 20:54
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 21:28.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.