Цитата:
Изначально опубликовано Андре
... перекрываю метод Init.
В нем я пишу следующее:
this.query().dataSourceNo(1).addRange(fieldNum(BomTable,BOMId)).value("001");
Цитата:
Роман Кошелев
Скорее всего, ошибка в том, что "не успевает" проинициализироваться query.
Я повторил вcё как ты писал, и понял -- быстрее всего решить проблему, если перекрыть метод executeQuery, а не Init:
public void executeQuery()
{
this.query().dataSourceNo(1).addRange(fieldNum(BomTable,BOMId)).value("001");
super();
}
Так вроде всё работает.
Работает, да не совсем.
Метод executeQuery срабатывает каждый раз при добавлении/снятии фильтра. Соответственно на форме установки фильтра при каждой установке/снятии фильтра добавляется еще одна строка.
Наверно корректнее будет так:
public void executeQuery()
{
this.query().dataSourceNo(1).clearRange(fieldNum(BomTable,BomId));
this.query().dataSourceNo(1).addRange(fieldNum(BomTable,BOMId)).value("001");
super();
}
И еще. При добавлении этого метода и открытии формы установки фильтра, там по умолчанию можно фильтровать только по одному полю - тому, на которое мы установили фильтр. А если бы я не создавал этот метод, то в форме установки фильтра отображались бы строки фильтрации по другим полям.
Куда они пропадают ?