Показать сообщение отдельно
Старый 19.09.2007, 16:05   #6  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
спасибо за предложения. в конце концов срослось след. образом:
добавил датасорс 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 не посоветовали, тот метод внимательно бы не вычитал. Так что - спасибо