![]() |
#9 |
Moderator
|
Цитата:
Изначально опубликовано Андре
... перекрываю метод 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(); } И еще. При добавлении этого метода и открытии формы установки фильтра, там по умолчанию можно фильтровать только по одному полю - тому, на которое мы установили фильтр. А если бы я не создавал этот метод, то в форме установки фильтра отображались бы строки фильтрации по другим полям. Куда они пропадают ? |
|
|
|