Показать сообщение отдельно
Старый 24.02.2008, 14:13   #1  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
Cоздание запроса с агрегатом
Написал такой запрос в X++

X++:
static void Job103(Args _args)
{
    InventDim            inventDim;
    InventTrans          inventTrans;
    Query                query;
    QueryBuildDataSource qbsInventTrans, qbsInventDim;
    QueryBuildLink       qbl;
    QueryRun             queryRun;
    QueryBuildRange      qbrInventSizeId, qbrStatusIssue, qbrTransType, qbrItemId;
    Qty                  mQty;
    ;

 //   inventDim = this.inventDim();
    query  = new Query();

    qbsInventDim   =  query.addDataSource(tablenum(InventDim));

    qbsInventTrans =  qbsInventDim.addDataSource(tablenum(InventTrans));
   
  //  qbsInventTrans =  qbsInventDim.addDataSource(tablenum(InventTrans));

    qbsInventTrans.relations(true);

    qbsInventTrans.clearLinks();

    qbsInventTrans.addLink(fieldnum(InventDim,inventDimId),fieldnum(InventTrans,inventDimId));

    qbsInventTrans.joinMode(JoinMode::InnerJoin);



    qbrTransType = qbsInventTrans.addRange(fieldnum(InventTrans,TransType));
    qbrTransType.value(queryvalue(InventTransType::Sales));

    qbrStatusIssue = qbsInventTrans.addRange(fieldnum(InventTrans,StatusIssue));
    qbrStatusIssue.value(queryValue(StatusIssue::OnOrder));



    qbsInventDim.orderMode(OrderMode::GroupBy);
    qbsInventDim.addSortField(fieldnum(InventDim,InventSizeId));


    qbsInventTrans.orderMode(OrderMode::GroupBy);
    qbsInventTrans.addSortField(fieldnum(InventTrans,ItemId));
    qbsInventTrans.addSelectionField(fieldnum(InventTrans,ItemId));
    qbsInventTrans.addSelectionField(fieldnum(InventTrans,Qty),SelectionField::Sum);

    queryRun = new QueryRun(query);

    if(queryRun.prompt())
     {
        while(queryRun.next())
         {
            inventTrans = queryRun.get(tablenum(InventTrans));
            inventDim   = queryRun.get(tablenum(InventDim));
            info(strFmt('%1 %2 %3', inventTrans.ItemId, inventDim.InventSizeId, inventTrans.Qty));
         }
     }


}
Когда запускается, в диалоговом окне Запрос в закладке СОРТИРОВКА имеется только поле Размер в таблице Складская аналитика, а поле Номенклатура в таблице Складские проводки отсутствует, в результате выводится только агрегатная сумма для размера, а не для номенклатуры и размера ...

Подскажите пожалуйста, в чем проблема ?

Заранее спасибо.