2013-06-24 71 views
5

我在做報告,我需要精確的小數值。一個數字的值可以是2位小數,而數字的值可以是10.如果我將小數位範圍設置爲10個位置,那麼該列總是會顯示10個小數位,其中大部分爲0。如果它們存在,我該如何忽略數值中的0?比如我喜歡的數據顯示如下:如何忽略水晶報表中的零小數位數值

123.24 
98.234 
1212.678432 

代替:

123.2400000000 
98.2340000000 
1212.6784320000 
+0

查看我的回答爲[在式CR輪十進制] [1] [1]:http://stackoverflow.com/questions/15462307/round-decimal-in-formula- cr – craig

+1

雖然我不想做任何舍入。我只想顯示確切的數字並省略任何額外的0。 – Icebreaker

回答

8

執行以下操作:

  • 右鍵單擊你想要的「詳細信息」文本框申請此格式 至
  • 單擊「格式字段」
  • 單擊「數字」選項卡
  • 點擊「自定義...」
  • 設置適當的「小數」和「四捨五入」的價值觀,以反映送入本報告
  • 點擊「小數」公式按鈕
  • 表的十進制規模

    粘貼下面的代碼,並確保改變{myproc的; 1.col1},以反映你的程序/列:

    stringVar number := ToText({myproc;1.col1}, 8); 
    while (right(number, 1) = "0") do 
    number := left(number, len(number) - 1); 
    len(number) - InStr(number, "."); 
    
+0

謝謝。我會在一小時內嘗試這個,並回到我的結果。 – Icebreaker

+0

嘿,我試了一下,它說代碼中有錯誤。它指出「字段名稱是未知的」,它強調了這一部分:{myproc; 1.col1}任何想法? – Icebreaker

+0

@ Marino3d你必須用你想在字段中顯示的存儲過程/列的名稱來替換它。 –

0

如果你沒有做這個領域,只是回購任何計算rting它,你可以作爲一個字符串,而不是一個數字餵它到你的報告?

+0

沒有計算。它直接從我的oracle數據庫中提取。我沒有創建提取數據的過程,但我知道它根本不處理數字。 CR級別也沒有進行計算。 – Icebreaker

3

一個簡單的只是儘量在格式下面的代碼filed->號 - > Customize->小數代碼部分:

if CurrentFieldValue=Int(CurrentFieldValue) then 
    0 
else 
    2 

數「2」是你的小數位,你可以用它代替您擁有。

+0

謝謝。這解決了我的兩個問題。首先,這是我需要的。其次,我正在尋找'CurrentFieldValue'。 – hims056

0

這將允許您保持該字段爲數字,而不必轉換爲文本。此解決方案是小數點格式更改。

•右鍵單擊要將此格式應用於

•單擊「格式字段」中的「詳細信息」字段

•單擊「數字」選項卡

•點擊「自定義。 ..「

從您想要保留的最大小數位開始,然後將行重複向後。例如,如果您知道最大小數位數有一個值,您希望保持該數字的起始位置,即1.2345600,那麼您將以5開頭。如果數字爲0,則必須首先考慮此位置,否則將出現錯誤

「字段名稱」是您希望更改其格式的數據庫字段名稱。

If {"Field Name"} = 0 then 2 else 
if((({"Field Name"})/(truncate({"Field Name},4)))>1) then 5 else 
if((({"Field Name"})/(truncate({"Field Name},3)))>1) then 4 else 
if((({"Field Name"})/(truncate({"Field Name},2)))>1) then 3 else 
2 
+1

您能詳細解釋一下您提供的解決方案嗎? – abarisone