Показать сообщение отдельно
Старый 05.06.2008, 17:33   #8  
radya is offline
radya
Участник
 
16 / 10 (1) +
Регистрация: 07.05.2007
Адрес: Москва
На всякий случай , может кому пригодится.. Не пытаться прикрутить AOT_query на форме. Лучше прописать все связи , группировки и фильтры на самой форме. Что я сделал : на ExecuteQuery родительского датасорса :
X++:
    Query query = new Query();
    QueryRun qr ;
    QueryBuildDataSource qbds1,qbds2;
    ;
    if (InventTable_ds.queryRun())
        query = InventTable_ds.queryRun().query();
    else
        query = InventTable_ds.query();
    qbds1 = query.dataSourceTable(tablenum(InventTable));
    if (Query.dataSourceCount() < 2)
        qbds1.addDynalink(fieldnum(InventTable,ItemId),InventSum,fieldnum(InventSum,ItemId));
    qbds2 = query.dataSourceTable(tablenum(InventSum));
    qbds1.addRange(fieldnum(InventTable,A_LineCode)).value("ACM");
    qbds2.addRange(fieldnum(InventSum,Closed)).value("0");
    qbds1.addSortField(fieldnum(InventTable,A_PartNumber));
    qbds1.addSortField(fieldnum(InventTable,NameAlias));
    qbds1.addSortField(fieldnum(InventTable,ItemId));
    qbds1.orderMode(orderMode::GroupBy);
    qbds2.addSelectionField(fieldnum(InventSum,AvailPhysical),SelectionField::Sum);
    qbds2.addSortField(fieldnum(InventSum,ItemId));
    qbds2.orderMode(orderMode::GroupBy);
    super();
Форма показывает наличие товара на складе с определенными параметрами (в моем случае A_LineCode = ACM на InventTable)
Повторюсь , это только для Ах 3.0, с четверкой надеюсь все проще.