спасибо за предложения. в конце концов срослось след. образом:
добавил датасорс InventTable на форму, непосредственно в методе
X++:
element.inventDimSetupObject().modifyQuery(inventSum_DS,inventDim_DS,InventTable_DS);
void modifyQuery(
FormDataSource inventSum_DS,
FormDataSource inventDim_DS,
FormDataSource InventTable_DS=null // georg, добавление фильтров
){
...
// georg, добавление фильтров --->
QueryBuildDataSource qBSItem;
QueryBuildRange fItemGroupId;
QueryBuildRange fModelGroupId;
QueryBuildRange fDimGroupId;
QueryBuildRange fItemBuyerGroupId;
// georg, добавление фильтров <---
...
// georg, добавление фильтров --->
if(InventTable_DS){
qBSItem=inventTable_DS.query().dataSourceName(inventTable_DS.name());
qBSItem.sortClear();
fItemGroupId=qBSItem.findRange(fieldnum(InventTable,ItemGroupId));
if(!fItemGroupId)
fItemGroupId=qBSItem.addRange(fieldnum(InventTable,ItemGroupId));
fModelGroupId =qBSItem.findRange(fieldnum(InventTable,ModelGroupId));
if(!fModelGroupId)
fModelGroupId=qBSItem.addRange(fieldnum(InventTable,ModelGroupId));
fDimGroupId =qBSItem.findRange(fieldnum(InventTable,DimGroupId));
if(!fDimGroupId)
fDimGroupId=qBSItem.addRange(fieldnum(InventTable,DimGroupId));
fItemBuyerGroupId =qBSItem.findRange(fieldnum(InventTable,ItemBuyerGroupId));
if(!fItemBuyerGroupId)
fItemBuyerGroupId=qBSItem.addRange(fieldnum(InventTable,ItemBuyerGroupId));
}
// georg, добавление фильтров <---
}
добавил фильтры, а в форме просто подбирал фильтры посредством findrange:
X++:
void executeQuery()
{
;
element.inventDimSetupObject().modifyQuery(inventSum_DS,inventDim_DS,
// > georg, 19-09-2007, фильтр, -->
InventTable_DS);
fItemGroupId=InventTable_DS.query().dataSourceName(inventTable_DS.name()).findRange(fieldnum(InventTable,ItemGroupId));
fModelGroupId =InventTable_DS.query().dataSourceName(inventTable_DS.name()).findRange(fieldnum(InventTable,ModelGroupId));
fDimGroupId =InventTable_DS.query().dataSourceName(inventTable_DS.name()).findRange(fieldnum(InventTable,DimGroupId));
fItemBuyerGroupId =InventTable_DS.query().dataSourceName(inventTable_DS.name()).findRange(fieldnum(InventTable,ItemBuyerGroupId));
fItemGroupId.value(ItemGroupId.valueStr());
fModelGroupId.value(ModelGroupId.valueStr());
fDimGroupId.value(DimGroupId.valueStr());
fItemBuyerGroupId.value(ItemBuyerGroupId.valueStr());
// > georg, 19-09-2007, , <--
super();
}
и уже с ними работаю. Так срослось. Правда, если бы про fetchMode не посоветовали, тот метод внимательно бы не вычитал. Так что - спасибо