Попробуйте перенести ваш код
this.query().dataSourceNo(1).addRange(fieldNum(BomTable,BOMId)).value("001");
в инит'е Дата сорса за super()
т.е.
void init()
{
...
super();
this.query().dataSourceNo(1).addRange(fieldNum(BomTable,BOMId)).value("001");
}
То, что он вылетает с ошибкой трасировкой ... и т.д. - это понятно, на непроинициалицированный дата сорс вы ложите ограничение ...
в нашей практике мы поступаем несколько по другому ...
ClassDeclaration формы объявляем переменную
{
...
QueryBuildRange myRange;
...
}
в ините дата сорса инициализируем ее после супера
...
super();
....
myRange = this.query().dataSourceNo(1).addRange(fieldNum(BomTable,BOMId));
...
в executeQuery этого же дата сорса прописуем до супера
...
myRange.value('001');
super();
...
Вот.
Но даже не это вызывает интерес ...
Более интересна проблема решить как не сбив уже наложенные пользователем фильтры (правой клавишей на поле , фильтр) наложить свой ... фильтр.
Я по свободке капался и даже нарыл как это можно сделать, но по какой-то причине не записал ..., может кто знает?
__________________
Всем привет!!!
|