11.08.2006, 10:23 | #1 |
Участник
|
Использование "like" при работе с классом "QueryBuildRange"
Как задать классу "QueryBuildRange" значение c ключевым словом "like" ?
Требуется получиться запрос типа X++: select RassetTable where RassetTable.AccountNum like "0*"; X++: Query query = new Query(); QueryBuildDataSource ds = query.addDataSource(tableNum(RassetTable)); QueryRun queryRun; ; ds.addRange(fieldNum(RassetTable, AccountNum)).value('((AccountNum like "0*"))'); queryRun = new QueryRun(query); queryRun.next(); |
|
11.08.2006, 10:29 | #2 |
Участник
|
ds.addRange(fieldNum(RassetTable, AccountNum)).value("0*");
|
|
11.08.2006, 10:31 | #3 |
Microsoft Dynamics
|
Код: ds.addRange(fieldNum(RassetTable, AccountNum)).value("0*");
__________________
You should use Bing before asking dumb questions. |
|
11.08.2006, 10:34 | #4 |
Участник
|
угу, и еще это полезно почитать: http://axapta.mazzy.ru/lib/search/
__________________
Безвыходным мы называем положение, выход из которого нам не нравится. |
|
11.08.2006, 10:47 | #5 |
Участник
|
ок, а если надо диапазон типа
qbr.value('((AccountNum like "0*") || (AccountNum like "1*"))'); ? |
|
11.08.2006, 10:48 | #6 |
Участник
|
т.е. нужен именно расширенный диапазон
|
|
11.08.2006, 10:54 | #7 |
Участник
|
qbr.value('((AccountNum like "0*") || (AccountNum like "1*"))');
примерно так: X++: range r1,r2; ; r1 = '(AccountNum like 0*)'; r2 = '(AccountNum like 1*)'; ds.addRange(fieldNum(SomeTable, recId)).value(r1); ds.addRange(fieldNum(SomeTable, recId)).value(r2); разбил условие на 2 строки так как иногда (по непонятным причинам) такие условия то работают, то требуют какуюгить скобку (хотя их достаточно) PPS: (по непонятным причинам) - т.е если источник данных этого условия первый - то можно 1 строкой , если не первый то 1-й строкой не фурычит, разбив на 2 и добавив - все нормально работает если одной строкой то она выглядет так : ((AccountNum like 0*)||(AccountNum like 1*)) сорри нада like вместо == Последний раз редактировалось Jony; 11.08.2006 в 11:03. |
|
11.08.2006, 10:55 | #8 |
Microsoft Dynamics
|
Вы обратились к ссылкам, которые Вам порекомендовали? Читайте документацию, говорят, помогает...
__________________
You should use Bing before asking dumb questions. |
|
11.08.2006, 10:55 | #9 |
Участник
|
пардон, я слегка не правильно написал... особенность, что нужно расширенные диапазон через "или" на разные поля, т.е. типа
qbr.value('((AccountNum like "0*") || (AccountGroup like "1*"))'); |
|
11.08.2006, 11:01 | #10 |
Axapta
|
Поиск - великая вещь! Подружитесь с ним, помогает!
Возможности Ranges |
|
11.08.2006, 11:02 | #11 |
Участник
|
если разные поля, то точно так же
qbr.value('((AccountNum like "0*") || (AccountNum like "1*"))'); примерно так: range r1,r2; ; r1 = '(AccountNum like 0*)'; r2 = '(AccountGroup like 1*)'; ds.addRange(fieldNum(SomeTable, recId)).value(r1); ds.addRange(fieldNum(SomeTable, recId)).value(r2); или ds.addRange(fieldNum(SomeTable, recId)).value('((AccountNum like 0*)||(AccountGroup like1*))); что одно и тоже ( но иногда работеат то одно то другое ) |
|
11.08.2006, 11:20 | #12 |
Участник
|
ds.addRange(fieldNum(SomeTable, recId)).value('((AccountNum like "0*")||(AccountGroup like"1*")));
вот так вот не работает... а именно так и надо бы |
|
11.08.2006, 11:35 | #13 |
Участник
|
Цитата:
Сообщение от poul
ds.addRange(fieldNum(SomeTable, recId)).value('((AccountNum like "0*")||(AccountGroup like"1*")));
вот так вот не работает... а именно так и надо бы Вам написали одно, а вы пробуете другое Я например не могу найти у вас закрывающую кавычку для value ('....') Щас проверю в Аксапте |
|
11.08.2006, 11:43 | #14 |
Участник
|
вот так попробуйте :
ds.addRange(fieldNum(SomeTable, recId)).value('(AccountNum like "0*" || AccountGroup like"1*")); |
|
11.08.2006, 11:44 | #15 |
Участник
|
Цитата:
Сообщение от kashperuk
Честно говоря, не совсем понял.
Вам написали одно, а вы пробуете другое Я например не могу найти у вас закрывающую кавычку для value ('....') Щас проверю в Аксапте и ещё за сцылки очень большое спасибо, но как говорицца не по делу... потомучто задать буквально одной строкой надо фильтр аля "AccountNum like '0*"', только вот с синтакцисом проблемы ... вариант "0*" не подходит |
|
11.08.2006, 11:48 | #16 |
Участник
|
Цитата:
Сообщение от zelen
вот так попробуйте :
ds.addRange(fieldNum(SomeTable, recId)).value('(AccountNum like "0*" || AccountGroup like"1*")); у меня вооопсче ни в каком виде не принимает слово "like"... с количеством скобочек тоже эксперементировал |
|
11.08.2006, 11:50 | #17 |
Участник
|
меняю слово "like" на "==" все работает... может быть это слово вобще нельзя использовать ?
|
|
11.08.2006, 11:51 | #18 |
Участник
|
сорри, не совсем так
|
|
11.08.2006, 12:20 | #19 |
Участник
|
Тогда еще это почитайте Возможность использования Like в QueryBuildRange
__________________
Безвыходным мы называем положение, выход из которого нам не нравится. |
|