Dynamics ax 计算 QueryRun 中的记录数

static void countRecords(Args _args)
{
    Query                   q = new Query();
    QueryBuildDataSource    qbdsInventTable,
                            qbdsInventDimCombination;
    QueryRun                qr;
    Integer                 counter;
    Integer                 loops;
    Common                  common;
     
    qbdsInventTable = q.addDataSource(tableNum(InventTable));
    qbdsInventTable.addSelectionField(fieldNum(InventTable, RecId), SelectionField::Count);
     
    qr = new QueryRun(q);
     
    // Simple way to get record count from Query/QueryRun class
    counter = SysQuery::countTotal(qr);
    //loops   = SysQuery::countLoops(qr);
 
    // Via while
    counter = 0;
    loops   = 0;
    while (qr.next())
    {
        common  = qr.get(q.dataSourceNo(1).table());
        counter += common.RecId;
    }
     
    /*
    Second variant might be a lot more efficient and accurate if you have several datasources joined as standard countTotal also tries to count loops
    Adding joined datasource for you to checkout the difference
    */
     
    qbdsInventDimCombination = qbdsInventTable.addDataSource(tableNum(InventDimCombination));
    qbdsInventDimCombination.relations(true);
     
    qr = new QueryRun(q);
     
    // Way to get record count using SysQuery
    counter = SysQuery::countTotal(qr);
    //loops   = SysQuery::countLoops(qr);
     
    // Via while
    loops   = 0;
    counter = 0;
    while (qr.next())
    {
        common  = qr.get(q.dataSourceNo(1).table());
        counter += common.RecId;
    }
}


    Danzel
    Danzel管理员

    • 声明:本文由Danzel于2022-08-16转载(优化),转载须经原站同意并注明出处。
    • 本文地址:http://maryd.cn/?id=235
    上一篇:免费简单实用的PDF处理软件PDF24 工具箱 v11.2.0
    下一篇:Sublime编辑器中ANSI编码的汉字出现乱码

    留言评论

    暂无留言
    取消
    扫码支持