22.05.2007, 08:10 | #1 |
Участник
|
Ручной запрос: как указать Like?
Составляю запрос в методе. Пишу addRange. Добавляю в него значение. А как указать, что оно Like, а не =? Чего-то не могу найти такой пример в коде.
|
|
22.05.2007, 08:37 | #2 |
Участник
|
Используйте для поиска символы "*" и "?". Если Ax встретит их в строке запроса, то сама преобразует в like.
X++: AddRange(fieldId).Value("поиск*"); X++: field like "поиск%"
__________________
Axapta v.3.0 sp5 kr2 |
|
23.05.2007, 13:27 | #3 |
Участник
|
Т.е. так он работать не бдет
X++: qbrFromAccount.value(_base.FromAccount); |
|
23.05.2007, 13:38 | #4 |
Участник
|
Цитата:
Если у вас в поле FromAccount хранится строка со спец-символами для поиска, то они будут применены к запросу. AndyD уточнил просто, что X++: qbrFromAccount.value(queryValue(_base.FromAccount)); X++: qbrFromAccount.value(SysQuery::value(_base.FromAccount)); |
|
|
За это сообщение автора поблагодарили: aidsua (1). |
23.05.2007, 18:30 | #5 |
Участник
|
X++: qry = new Query(); qbds=qry.addDataSource(tablenum(LedgerBalancesDimTrans),'lbdt2'); qbrFromAccount=qbds.addRange(fieldnum(LedgerBalancesDimTrans,AccountNum)); qbrFromAccount.value(_base.FromAccount); |
|
23.05.2007, 18:36 | #6 |
Участник
|
Думаю, смотреть стоит в сторону того, где инициализируется значением поле _base.FromAccount
Или же значение фильтра изменяется где-то до вывода запроса. X++: static void Job71(Args _args) { Query qry; QueryBuildDataSource qbds; QueryBuildRange qbrFromAccount; LedgerBalancesDimTrans _base; ; _base.AccountNum = '69????'; qry = new Query(); qbds=qry.addDataSource(tablenum(LedgerBalancesDimTrans),'lbdt2'); qbrFromAccount=qbds.addRange(fieldnum(LedgerBalancesDimTrans,AccountNum)); qbrFromAccount.value(_base.AccountNum); info(qbds.toString()); } |
|