AX 2012 Computed column IIF语句使用

涉及Dynamics ax 行业已经好几年了,准备总结一些有用的处理方法供大家来参考

首先先介绍下Computed column技术,该技术是微软在AX2012版本中提供的新技术,可以让SQL语句在AX view中使用,这样就可以将想要的值拼接在一条交易记录上,这样就可以针对数据进行批量处理,所以想要报表处理速度快,尽量使用批量处理。

首先介绍IIF SQL语句应该怎么写,如下

//当合计科目是C1开头时,金额要取反
static server str CurrencyAmount()
{
    #define.viewName('Test_CustLedgerTransView') // 追加Computed column字段View
    #define.dataSourceName('Test_CompanyBULedgerTrans') // 此处是在view中字段属性的数据源
    str expresion;
    ;
   
    expresion = @"iif(substring(%1, 1, 2) = 'C1', %2, %2 * (-1))"; // 此处IIF语句是SQL 语句写法
    expresion = strFmt(expresion,
        SysComputedColumn::returnField(#viewName,
            #dataSourceName,
            fieldStr(Test_CompanyBULedgerTrans, MainAccountId)),
        SysComputedColumn::returnField(#viewName,
            #dataSourceName,
            fieldStr(Test_CompanyBULedgerTrans, AccountingCurrencyAmount)));
    return expresion;
}   

 上方方法现在view\Methods下追加,之后再Fields节点下追加Real Computed字段,设置viewMethod选为上方方法,并设置扩展类型即可,在SQL Server中查询该View,你会发现该View多了一个字段,并且该字段是计算出来的。

posted on 2019-06-20 22:55  AX凡人学习传  阅读(293)  评论(0编辑  收藏  举报