涉及Dynamics ax 行业已经好几年了,准备总结一些有用的处理方法供你们来参考server
首先先介绍下Computed column技术,该技术是微软在AX2012版本中提供的新技术,能够让SQL语句在AX view中使用,这样就能够将想要的值拼接在一条交易记录上,这样就能够针对数据进行批量处理,因此想要报表处理速度快,尽可能使用批量处理。blog
首先介绍IIF SQL语句应该怎么写,以下string
//当合计科目是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多了一个字段,而且该字段是计算出来的。io