涉及Dynamics ax 行業已經好幾年了,準備總結一些有用的處理方法供大家來參考 首先先介紹下Computed column技術,該技術是微軟在AX2012版本中提供的新技術,可以讓SQL語句在AX view中使用,這樣就可以將想要的值拼接在一條交易記錄上,這樣就可以針對數據進行批量處理,所以想 ...
涉及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多了一個欄位,並且該欄位是計算出來的。