Ничего не понимаю.
Есть форма, в DataSource одна таблица.
В Class Declaration формы объявляю:
PHP код:
QueryBuildRange criteriaFirstGroup;
В init() датасоурса инициализирую:
PHP код:
criteriaFirstGroup = this.query().dataSourceNo(1).addRange(fieldnum(VendTrans,AmountCur));
В executeQuery() накладываю значение:
PHP код:
criteriaFirstGroup.value(variable);
Строка variable формируется в зависимости от состояния контролов на форме.
Вопрос первый: почему установка значения моего фильтра сбивает фильтры установленные стандартным способом ? Я же устанавливаю значение поля своего QueryBuildRange.
Хорошо. Можно попробовать перед:
PHP код:
criteriaFirstGroup.value(variable);
смотреть какие уже наложены фильтры, сохранять их и после наложения установки значения своего фильтра накладывать их обратно. Делаю так:
PHP код:
query2 = this.query();
qbds = query2.dataSourceNo(1);
rangeCount = qbds.rangeCount();
for (rangeCnt=1; rangeCnt<=rangeCount; ++rangeCnt)
{
qbr = qbds.range(rangeCnt);
field = qbr.field();
table = qbr.table();
fieldName = fieldid2name(table,field);
}
Все это тоже в executeQuery().
Вопрос второй: при отладке этого кода видно, что rangeCount всегда равен 1. То есть тому фильтру, который я установил в init(), а дополнительные фильтры наложенные пользователем, как будто не замечаются ?