|
|
|
|
#1 |
|
Ищущий знания...
|
Вроде бы в X++ ограничений на количество символов нет, но учтите что сколько бы вы не передали символов из кода, в запросе в итоге будут участвовать только первые 250
сам наступал на эти грабли ![]() Лучше разбивать на несколько range (но это не всегда возможно из-за определения какое условие подставлять И или ИЛИ. если писать в одном range, тогда в запросе будет условие И, а если в нескольких, то ИЛИ. и на эти грабли наступал ).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
|
| За это сообщение автора поблагодарили: mazzy (2). | |
|
|
#2 |
|
Ищущий знания...
|
Цитата:
вот джобик для наглядности: X++: Query query;
QueryBuildDataSource qbds;
QueryBuildRange qbr;
InventTable inventTable;
str filter;
int i;
;
// вариант №1 создаем один range и в него через запятую записываем условие -->
query = new Query();
qbds = query.addDataSource(tableNum(InventTable));
qbr = qbds.addRange(fieldNum(InventTable, ItemId));
while select inventTable
{
i++;
if (filter != '')
filter += ', ';
filter += '!' + inventTable.ItemId;
if (i == 3)
break;
}
qbr.value(filter);
info('1-ый вариант -->');
info(query.dataSourceTable(tableNum(InventTable)).toString());
info('1-ый вариант <--');
// <--------------------------------------------------------------------------
i = 0;
// вариант №2 для каждой номенклатуры добавляем range -->
query = new Query();
qbds = query.addDataSource(tableNum(InventTable));
while select inventTable
{
i++;
qbds.addRange(fieldNum(InventTable, ItemId)).value(SysQuery::valueNot(inventTable.ItemId));
if (i == 3)
break;
}
info('2-ой вариант -->');
info(query.dataSourceTable(tableNum(InventTable)).toString());
info('2-ой вариант <--');
// <-----------------------------------------------------
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
|
| За это сообщение автора поблагодарили: Logger (3). | |
|
|
#3 |
|
Ищущий знания...
|
Цитата:
При формировании запроса в X++ в условие range можно добавлять сколько угодно символов, и запрос нормально отработает. Но, соответственно, если это условие добавить потом, например, в фильтр на форме (диалоге), то оно обрежется до 250 сомволов (потому как там используется TmpSysQuery ).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|