Показать сообщение отдельно
Старый 29.08.2002, 10:58   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Фильтрация
Ничего не понимаю.

Есть форма, в 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=1rangeCnt<=rangeCount; ++rangeCnt)
  {
    
qbr =  qbds.range(rangeCnt);
    
field qbr.field();
    
table qbr.table();
    
fieldName fieldid2name(table,field);
  } 
Все это тоже в executeQuery().

Вопрос второй: при отладке этого кода видно, что rangeCount всегда равен 1. То есть тому фильтру, который я установил в init(), а дополнительные фильтры наложенные пользователем, как будто не замечаются ?