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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.11.2009, 12:50   #1  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Использование like в switch'е
Добрый день. Думаю вопрос не очень сложный, но все таки на форуме не смог найти ничего путного.
Дак вот возможно ли в операторе switch использовать маску like или же сама логика switch'а заключается в том что условие должно быть равным?
То есть можно ли написать типа
X++:
        switch (Element)
        {
            case '0102040501': ... break;
            case '0401020*': ... break;
            case '0505000000': ... break;
        }
case '0401020*': ... break;- этой строке удовлетворяли все значения начинающиеся на 0401020.
Если же нет конечно придется писать if, но хотелось бы навести красоту
Старый 02.11.2009, 12:52   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
насколько мне известно, значение в case должно быть равным.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 02.11.2009, 13:00   #3  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
X++:
switch (true)
    {
        case element like '0102040501': 
            break;
        case element like '0401020*': 
            break;
        case element like '0505000000':
            break;
    }
За это сообщение автора поблагодарили: lev (1), IvanS (1), Aleks_K (1).
Старый 02.11.2009, 13:05   #4  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Цитата:
Сообщение от DSPIC Посмотреть сообщение
X++:
switch (true)
    {
        case element like '0102040501': 
            break;
        case element like '0401020*': 
            break;
        case element like '0505000000':
            break;
    }
Немного перевернули свитч хотя работает правильно спасибо
Старый 02.11.2009, 13:08   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от DSPIC Посмотреть сообщение
X++:
switch (true)
    {
        case element like '0102040501': 
            break;
        case element like '0401020*': 
            break;
        case element like '0505000000':
            break;
    }
что то у меня такая конструкция не отработала..
вот джоб, который я написал для теста:
X++:
str parmStr = 'abcd';
    ;

    switch(true)
    {
        case parmStr like 'abc'  :
         info('abc');

        case parmStr like 'cd'  :
         info('cd');

        case parmStr like 'fg'  :
         info('fg');
    }
не на один из case-ов не отреагировал, хотя по идее должен был на первые два...
или я что то не так понял?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 02.11.2009, 13:10   #6  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
соррри, вопрос снимается, все дело в звездочках

to DSPIC: спасибо
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 02.11.2009, 13:13   #7  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от lev Посмотреть сообщение

... я что то не так понял?
Вы не совсем правильно поняли работу оператора like.
Замените like 'abc' на like 'abc*'
Старый 02.11.2009, 13:26   #8  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Вы не совсем правильно поняли работу оператора like.
Замените like 'abc' на like 'abc*'
да, да, уже заметил, просто забыл про звезды
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Fred Shen: 'Not Like' in Dynamics AX Blog bot DAX Blogs 0 28.10.2006 16:40
Использование "like" при работе с классом "QueryBuildRange" poul DAX: Программирование 18 11.08.2006 12:20
как правильно использовать not like polygris DAX: Программирование 1 06.05.2006 16:59
like запрос с использованием query Vadik Shiryakoff DAX: Программирование 7 13.03.2006 12:05
Возможность использования Like в QueryBuildRange Koriolis DAX: Программирование 5 14.02.2005 17:43

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

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

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