Compute欄位小計異常

請問一下,為什麼我在這個DW的[總成本小計]後面的COMPUTE欄位(如下圖所示)加入sum( compute_0024 for group 1 )

但出來的結果卻是
我是很單純的想把COMPUTE_0024加總起來而已!!好怪

********************************************************************************
關於Compute的問題,我也遇過幾次,原因不是很清楚,但是有些做過調整後就可以使用了,我提供幾種解決方法你可以各個去試試:
  1. compute_0024有Null值,因為某些條件下沒有計算值,我推測是Null值,這個Null值可能導致Group1上的compute計算sum值錯誤。解決方式:在compute_0024的公式外面加個if(isnull(xx) , 0 , xx)的判斷,強迫讓Null值的公式出現0值,缺點:畫面上會有"0"值出現。

  2. 在Group1上的compute公式中加入isnull判斷sum(if(isnull(compute_0024),0,compute_0024) for group 1),這方法不會有第一點的問題,但是如果是compute_0024值有問題,依然不能解決。

  3. 在Group1上的compute公式中不要直接使用compute_0024這種計算欄位的值,直接將compute_0024中的公式拿來替代compute_0024,因為經過測試發現計算欄位有時候去取得其他計算欄位的值時會有異常值的出現(原因不明,我猜可能是PB內部運算順序導致),因此我發現這樣雖然公式會"落落長"但是比較不會有問題。

  4. Compute欄位的format不要使用預設的這個也是特例問題,雖然系統在不指定下會使用[general],卻有時候會發生計算小數點的錯誤問題,通常這種錯誤都會只發生在小數點下,我的經驗是有時候去TOTAL整數卻會跑出一堆小數點以下的數值,修改過FORMAT後就好了。例如僅需要整數時把FORMAT設定:###0。

以上四點是我這邊解決compute field的經驗,你可以修正試試看。

留言

Vasili寫道…
試過更新 EBF 嗎?
WILDOX寫道…
to Vasili:
這是我朋友提出的問題,他的版本是PB6.5,
這是我當初幫他解決的方式,
我想應該很難找到EBF了吧‧

這個網誌中的熱門文章

【研究】列印的條碼為什麼很難刷(掃描)

統一發票列印小程式

C# 使用 Process.Start 執行外部程式