Цитата:
Здесь ключевые слова "расширенный фильтр" и "like". Расширенный фильтр like не поддерживает, по крайне мере в 3.0 точно.
У меня 3-ка.
Есть таблица Table1:
Field1 Field2 Field3 Field4
100 Глав_1 П_1 F_1
100 Пред_1 Д_1 S_2
100 Пред П_3 S_3
Код:
X++:
Query q;
QueryBuildDataSource qbds;
QueryBuildRange qbr;
QueryRun qr;
Table1 table1;
;
q = new Query();
qbds = q.addDataSource(TableNum(Table1));
qbr = qbds.addRange(fieldNum(Table1, Field2));
qbr.value(strFmt('( (%1.%2 like "Глав_*") || ((%1.%3 like "П_*") && (%1.%4 like "S_*")))',
q.dataSourceTable(tableNum(Table1)).name(),
fieldStr(Table1, Field2),
fieldStr(Table1, Field3),
fieldStr(Table1, Field4)));
info(q.dataSourceNo(1).toString());
qr = new QueryRun(q);
while (qr.next())
{
table1 = qr.get(TableNum(Table1));
info(table1.Field2);
}
Выдает:
Цитата:
Сообщение (12:27:52)
SELECT * FROM Table1 WHERE ((( (Table1_1.Field2 like "Глав_*") || ((Table1_1.Field3 like "П_*") && (Table1_1.Field4 like "S_*")))))
Глав_1
Пред
Именно, что и ожидалось. Что не работает?
Единственное отличие - это поставлены кавычки на каждое значение.
Но без них выдает "Ошбку расширенного диапазона."