17.03.2009, 10:25 | #23 |
MCTS
|
Цитата:
Здесь ключевые слова "расширенный фильтр" и "like". Расширенный фильтр like не поддерживает, по крайне мере в 3.0 точно.
Есть таблица 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 Пред Единственное отличие - это поставлены кавычки на каждое значение. Но без них выдает "Ошбку расширенного диапазона." Последний раз редактировалось Eldar9x; 17.03.2009 в 10:43. |
|
Теги |
query, range, как правильно |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|