15.02.2008, 12:20 | #1 |
Программатор
|
битовые операции в Аксапте
**** выделено отсюда Профпригодность ****
Про биты это жесть какая-то... Интересно в жизни ктонить игрался с битами при разработке какого нибуть бизнесс процесса??? Последний раз редактировалось mazzy; 15.02.2008 в 22:07. |
|
15.02.2008, 14:11 | #2 |
Banned
|
|
|
15.02.2008, 14:18 | #3 |
Программатор
|
Сори за оффтоп. Я просто не могу себе представить, что за задача такая?
|
|
15.02.2008, 14:54 | #4 |
Banned
|
Было такое свойство у полуфабриката - направление намотки - которое на каждом этапе производственного процесса менялось на противоположное (вроде спина эдакого, с двумя возможными состояниями). Запрограммировал инверсией бита.
Был еще случай, когда целый ряд параметров, выбираемые пользователем, нужно было передавать подряд через 3-4 таблицы из одного модуля в другой. Простое решение - создать по 10 полей в каждой и копировать из одного в другое - совершенно не оптимально. Запаковал все в один длинный int. |
|
15.02.2008, 14:59 | #5 |
Участник
|
А есть еще \Data Dictionary\Tables\InventTrans\Fields\inventDimFixed построенный по тому же принципу
__________________
любитель портвейна и снов с прокисшей капустой в усах |
|
15.02.2008, 22:00 | #6 |
Участник
|
Цитата:
запрограммировать надо было булевым значением. во-первых, индекс можно построить. во-вторых, можно сделать нормальное поле ввода (галочку), не извращаясь с програмимрованием. в-третьих, булево можно нормально использовать при создании новых relation в-четвертых, работа с булевым в аксапте выполняется быстрее. В стандартной Аксапте битовые операции предельно редки. Один из примеров - хранение галочек с отмеченными аналитиками в FixedDim, как eugene egorov говорит. обратите внимание на отличие от примера EVGL 1. работа идет с переменным числом битов. 2. битов не может быть более 32 (потенциально до 64) Последний раз редактировалось mazzy; 15.02.2008 в 22:14. |
|
16.02.2008, 12:26 | #7 |
Программатор
|
Спасибо большое.
|
|
20.02.2008, 13:48 | #8 |
Banned
|
Цитата:
Сообщение от mazzy
Извини, конечно. Но это изврат и антипаттерн.
запрограммировать надо было булевым значением. во-первых, индекс можно построить. во-вторых, можно сделать нормальное поле ввода (галочку), не извращаясь с програмимрованием. в-третьих, булево можно нормально использовать при создании новых relation в-четвертых, работа с булевым в аксапте выполняется быстрее. В стандартной Аксапте битовые операции предельно редки. Один из примеров - хранение галочек с отмеченными аналитиками в FixedDim, как eugene egorov говорит. обратите внимание на отличие от примера EVGL 1. работа идет с переменным числом битов. 2. битов не может быть более 32 (потенциально до 64) Чутье подсказало, что таких характеристик - степеней свободы - может быть не одна. О наличии второй стало известно в середине проекта. Еще о трех похожих стало известно на другом проекте сегодня: печать в положении вверх/низ и вправо/влево. Итого их стало четыре с общим количеством комбинаций 2^4=16, а изменений в коде - чуть. Вот так. |
|
20.02.2008, 13:58 | #9 |
Участник
|
Цитата:
Сообщение от EVGL
Не извиняю.
Чутье подсказало, что таких характеристик - степеней свободы - может быть не одна. О наличии второй стало известно в середине проекта. Еще о трех похожих стало известно на другом проекте сегодня: печать в положении вверх/низ и вправо/влево. Итого их стало четыре с общим количеством комбинаций 2^4=16, а изменений в коде - чуть. Вот так. |
|
20.02.2008, 14:08 | #10 |
Гость
|
вот как любят консультанты и менеджеры профессиональных высококлассных программистов кодить учить - хлебом не корми.
|
|
20.02.2008, 14:11 | #11 |
Banned
|
|
|