AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.02.2008, 12:20   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
битовые операции в Аксапте
**** выделено отсюда Профпригодность ****

Про биты это жесть какая-то... Интересно в жизни ктонить игрался с битами при разработке какого нибуть бизнесс процесса???

Последний раз редактировалось mazzy; 15.02.2008 в 22:07.
Старый 15.02.2008, 14:11   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Sada Посмотреть сообщение
Про биты это жесть какая-то... Интересно в жизни ктонить игрался с битами при разработке какого нибуть бизнесс процесса???
Я.
Старый 15.02.2008, 14:18   #3  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Сори за оффтоп. Я просто не могу себе представить, что за задача такая?
Старый 15.02.2008, 14:54   #4  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Sada Посмотреть сообщение
Сори за оффтоп. Я просто не могу себе представить, что за задача такая?
Было такое свойство у полуфабриката - направление намотки - которое на каждом этапе производственного процесса менялось на противоположное (вроде спина эдакого, с двумя возможными состояниями). Запрограммировал инверсией бита.

Был еще случай, когда целый ряд параметров, выбираемые пользователем, нужно было передавать подряд через 3-4 таблицы из одного модуля в другой. Простое решение - создать по 10 полей в каждой и копировать из одного в другое - совершенно не оптимально. Запаковал все в один длинный int.
Старый 15.02.2008, 14:59   #5  
eugene egorov is offline
eugene egorov
Участник
Аватар для eugene egorov
 
273 / 97 (4) ++++
Регистрация: 05.06.2002
Адрес: Москва
Цитата:
Сообщение от Sada Посмотреть сообщение
Сори за оффтоп. Я просто не могу себе представить, что за задача такая?
А есть еще \Data Dictionary\Tables\InventTrans\Fields\inventDimFixed построенный по тому же принципу
__________________
любитель портвейна и снов с прокисшей капустой в усах
Старый 15.02.2008, 22:00   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от EVGL Посмотреть сообщение
направление намотки - которое на каждом этапе производственного процесса менялось на противоположное (вроде спина эдакого, с двумя возможными состояниями). Запрограммировал инверсией бита.
Извини, конечно. Но это изврат и антипаттерн.
запрограммировать надо было булевым значением.
во-первых, индекс можно построить.
во-вторых, можно сделать нормальное поле ввода (галочку), не извращаясь с програмимрованием.
в-третьих, булево можно нормально использовать при создании новых relation
в-четвертых, работа с булевым в аксапте выполняется быстрее.


В стандартной Аксапте битовые операции предельно редки.
Один из примеров - хранение галочек с отмеченными аналитиками в FixedDim, как eugene egorov говорит.

обратите внимание на отличие от примера EVGL
1. работа идет с переменным числом битов.
2. битов не может быть более 32 (потенциально до 64)
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 15.02.2008 в 22:14.
Старый 16.02.2008, 12:26   #7  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Спасибо большое.
Старый 20.02.2008, 13:48   #8  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от mazzy Посмотреть сообщение
Извини, конечно. Но это изврат и антипаттерн.
запрограммировать надо было булевым значением.
во-первых, индекс можно построить.
во-вторых, можно сделать нормальное поле ввода (галочку), не извращаясь с програмимрованием.
в-третьих, булево можно нормально использовать при создании новых relation
в-четвертых, работа с булевым в аксапте выполняется быстрее.


В стандартной Аксапте битовые операции предельно редки.
Один из примеров - хранение галочек с отмеченными аналитиками в FixedDim, как eugene egorov говорит.

обратите внимание на отличие от примера EVGL
1. работа идет с переменным числом битов.
2. битов не может быть более 32 (потенциально до 64)
Не извиняю.
Чутье подсказало, что таких характеристик - степеней свободы - может быть не одна. О наличии второй стало известно в середине проекта. Еще о трех похожих стало известно на другом проекте сегодня: печать в положении вверх/низ и вправо/влево. Итого их стало четыре с общим количеством комбинаций 2^4=16, а изменений в коде - чуть. Вот так.
Старый 20.02.2008, 13:58   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от EVGL Посмотреть сообщение
Не извиняю.
Чутье подсказало, что таких характеристик - степеней свободы - может быть не одна. О наличии второй стало известно в середине проекта. Еще о трех похожих стало известно на другом проекте сегодня: печать в положении вверх/низ и вправо/влево. Итого их стало четыре с общим количеством комбинаций 2^4=16, а изменений в коде - чуть. Вот так.
ну, если бы это были не битовые операции, а отдельные поля, то ИЗМЕНЕНИЙ вообще бы не было. А был бы ДОПОЛНИТЕЛЬНЫЙ код
__________________
полезное на axForum, github, vk, coub.
Старый 20.02.2008, 14:08   #10  
otkudao
Гость
 
n/a
вот как любят консультанты и менеджеры профессиональных высококлассных программистов кодить учить - хлебом не корми.
Старый 20.02.2008, 14:11   #11  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от mazzy Посмотреть сообщение
ну, если бы это были не битовые операции, а отдельные поля, то ИЗМЕНЕНИЙ вообще бы не было. А был бы ДОПОЛНИТЕЛЬНЫЙ код
Не понял. И чем же это лучше и в чем принципиальная разница?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как для ГК операции в LedgerTrans найти соответствующую операцию в VendTrans? romulis DAX: Программирование 20 29.08.2006 14:10
Система оповещений в Аксапте (события в Аксапте) raunio DAX: Прочие вопросы 1 29.09.2005 15:44
Аналитический учет в Аксапте. Анна DAX: Прочие вопросы 38 06.04.2005 14:04
Размышления на тему “Системы контроля версий в Аксапте”. Андре DAX: База знаний и проекты 31 07.02.2005 12:29
Строки спецификации - Код операции Андре DAX: Функционал 3 08.05.2003 14:27
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:27.