AX Query

AX 用代码方式调用静态Query(AOT\Queries节点下面的Query)的方法

static void AXD_CallQuery_SalesInfo(Args _args)
{
    SysQueryRun queryRun = new SysQueryRun(querystr(AXD_SalesInfo));
    SalesLine m_salesLine;
    InventTable m_InventTable;
    ;
    if (queryRun.prompt())
    {
        while (queryRun.next())
        {
            m_salesLine = queryRun.get(tableNum(salesLine));
            m_InventTable = queryRun.get(tableNum(InventTable));
            if (queryRun.changed(tableNum(salesLine)))
            {
                info(strfmt("SalesID: %1,itemid:%2",
                m_salesLine.salesID,m_InventTable.itemId));
            }
        }
    }
}                        

Query构造条件里面不同字段结果是或的关系

 

复杂表达式:

Qbr = qbds.addRange(fieldnum(InventTable,ItemId));

Qbr.value(strfmt(‘(%1 == “%2”)’,fieldstr(InventTable,ItemId),queryvalue(‘I-999’));

到目前,你可能会觉得表达式不过是把简单的问题搞复杂而已,但是,我要说的是,表达式功能很强大,我们会在后面做更详细的介绍。

在使用strfmt来构造表达式的时候有几点要注意:

(a)        传递给value方法的参数最外层要用’value’的形式括起来,即用单引号括起来;

(b)        表达式中的每一个等式以及整个表达式都要使用小括号括起来,如:

‘((%1 == %2) || (%1 == %3))’

(c)        变量依次在表达式中用%n 的形式表示;

(d)        如果被用来做过滤的值是字符串型的,必须用双引号将值所对应的变量括起来,如:

Strfmt(‘(%1 == “%2”)’,fieldstr(InventTable,ItemId),queryvalue(‘I-999’));

  

posted on 2015-04-01 16:06 szsunny 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/sxypeace/p/4384187.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值