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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2005, 15:30   #1  
Кандидат is offline
Кандидат
начальный
 
69 / 6 (1) +
Регистрация: 19.09.2005
Адрес: Москва
Здравствуйте все.
Такая проблема: ( кусок кода)
NesDate=rContractTable.ContractDate;
Name=custTable.Name;
Diff=(systemDateGet()-EndMth(NesDate));
info(int2str(Diff));
info(Name);
switch (Diff)
{
case Diff>=0:
info("OK");
break;
}
Почему-то не попадаю в первый case ( не выводится "ОК"), хотя Diff=274. Видно через отладчик.
Кто чем поможет?
Старый 01.11.2005, 15:36   #2  
Кандидат is offline
Кандидат
начальный
 
69 / 6 (1) +
Регистрация: 19.09.2005
Адрес: Москва
Спасибо, заработало.
Старый 01.11.2005, 16:01   #3  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от Кандидат
Кто чем поможет?
Могу помочь ссылками на учебники по языку Си: http://dfe3300.karelia.ru/koi/posob/c/c.htm (в частности, http://dfe3300.karelia.ru/koi/posob/c/c.htm#g2.5) или http://lib.ru/MAN/DEMOS210/c.txt (в частности, http://lib.ru/MAN/DEMOS210/c.txt#56).

Цитата:
Сообщение от Кандидат
Спасибо, заработало.
Уверены?

В общем, правильный способ сделать то, что Вы хотите (в X++):
Код:
switch (true) {
// ...
    case (Diff >= 270) :
// ...
}
В Вашем коде несоответствие типов, вообще-то. Поэтому происходит неявное преобразование.

P.S.: Кстати, если Вы все-таки прочитали учебник по Си, ссылки на который я дал, Вы, наверное, заметили, что с точки зрения стандарта и мой пример тоже неправильный (догадайтесь сами, почему ). Однако в X++ такая конструкция проходит.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
 


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

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

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