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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.11.2010, 15:56   #1  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Можете набросать тестовый джобик? А лучше сами ещё повнимательнее всё проверьте.
А вы функциональность внутренних расчётов не используете ?
Указанный мною метод класса InventDimCtrl_Frm_Mov_Purch определяет доступность номенклатурных и складских аналитик в закупках.
Если предположить что логическое И имеет превосходство над ИЛИ, то исходя из этого метода финансовые складские аналитики должны быть недоступны для редактирования в открытых строках внутрирасчётных закупок. Хотя я у нас в системе вижу обратное. Это говорит о том что сначала всё-таки выполняется логическое ИЛИ, а потом И. Даже ставил точку останова чтобы убедиться в этом.
__________________
Дмитрий
Старый 12.11.2010, 16:46   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Damn Посмотреть сообщение
Если предположить что логическое И имеет превосходство над ИЛИ
А если открыть SDK и почитать о Operator Precedence?
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: Damn (2).
Старый 12.11.2010, 17:16   #3  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от Vadik Посмотреть сообщение
А если открыть SDK и почитать о Operator Precedence?
Вот спасибо за предложение почитать
Issues concerning X++: Operator precedence of && and ||
In X++ these two operators have the same precedence, whereas in other languages && is higher priority than ||

Теперь про приоритет логических операций в X++ мне всё понятно, остался вопрос с этим методом - всё-таки программисты забыли скобки поставить или осознанно не поставили ?
__________________
Дмитрий
За это сообщение автора поблагодарили: S.Kuskov (3).
Старый 12.11.2010, 17:36   #4  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Думаю осознанно. Теоретически ведь ошибки нет.
Старый 12.11.2010, 17:44   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от greench Посмотреть сообщение
Думаю осознанно. Теоретически ведь ошибки нет.
Врядли осознано. Получается что конструкция (a && b || c && d ) эквивалентна этому (((a && b) || c) && d ) ...
Старый 12.11.2010, 17:45   #6  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
брр.. вы уверены, что это (a && b || c && d ) не эквивалентно ((a && b) || (c && d )) ?
Старый 12.11.2010, 18:43   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от greench Посмотреть сообщение
брр.. вы уверены, что это (a && b || c && d ) не эквивалентно ((a && b) || (c && d )) ?
Я уже не в чём не уверен, но с учётом этого these two operators have the same precedence (эти две операции имеют одинаковый приоритет) я предположил, что в случае отсутствия скобок вычисления будут производиться последовательно
например как (a+b-c+d) эквивалентно (((a+b)-c)+d)

P.S.: Тема 2007-го года Логические операции в Х++

Последний раз редактировалось S.Kuskov; 12.11.2010 в 19:06.
Старый 12.11.2010, 19:33   #8  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,984 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от greench Посмотреть сообщение
брр.. вы уверены, что это (a && b || c && d ) не эквивалентно ((a && b) || (c && d )) ?
К сожалению в X++ это именно так

Поэтому везде стараюсь ставить скобки.
Судя по оформлению - похоже что программист по привычке написал подразумевая приоритет операции &&

Наверняка ошибка.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ax2009 RU5: класс SysOperationProgressServer Damn DAX: Программирование 2 29.09.2010 22:18
AX2009 RU5: невозможно открыть "журнал восстановления НДС"... EVGL DAX: Функционал 8 09.09.2010 23:20
Ax2009 RU5: Не заполняется CreatedDateTime в SysDatabaseLog Damn DAX: Администрирование 2 07.09.2010 15:29
AX2009 RU5: ADORecordSet, вопрос на 16 баллов DSPIC DAX: Программирование 6 01.09.2010 18:19
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15

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

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

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