涉及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