2013-06-24 37 views
5

レポートを作成していますが、正確な小数値が必要です。数値は小数点以下2桁の値を持ち、数値は10の値を持つことができます。小数点以下の桁数を10桁に設定すると、その桁は常に小数点以下10桁になります。存在する場合、値の0を無視するにはどうすればよいですか?たとえば、私は、データは次のように表示したい:Crystal Reportsの小数点以下の桁数を無視する方法

123.24 
98.234 
1212.678432 

の代わり:

123.2400000000 
98.2340000000 
1212.6784320000 
+0

[1] [1] [式CRにおけるラウンド進]に私の答えを参照してください。http://stackoverflow.com/questions/15462307/round-decimal-in-formula- cr – craig

+1

私は丸めをしたくないですが。私はちょうど正確な数を表示し、余分な0を省略したい。 – Icebreaker

答えて

8

次の操作を行います。

  • 適用したい「詳細」テキストボックスを右クリックし、この書式設定 〜
  • 「フォーマットフィールド」
  • 「番号」タブをクリックします
  • クリックして「カスタマイズ...」
  • このレポート
  • に供給テーブルのDECIMALスケールを反映するために適切な「小数」と「丸め」の値を設定しては
  • 「小数」式のボタンをクリックします

    は、次のコードを貼り付け、および変更することを確認してください{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

ありがとうございます。私はこれを1時間以内に試して、結果に戻ってきます。 – Icebreaker

+0

ちょっと試してみましたが、コードにエラーがあります。それは "フィールド名は不明"と書かれており、この部分がハイライトされています:{myproc; 1.col1} – Icebreaker

+0

@ Marino3dフィールドに表示したいストアドプロシージャ/カラムの名前に置き換える必要があります。 –

0

あなたはこのフィールドだけレポ上の任意の計算を行っていない場合それを書いて、数字ではなく文字列としてレポートにフィードできますか?

+0

計算がありません。私のOracleデータベースから直接引き出されています。私はデータを取り出す手続きを作成しませんでしたが、数字をまったく操作しないことはわかっています。 CRレベルでも計算は行われません。 – Icebreaker

3

ちょうど形式で以下のコードfiled-> Number-> Customize->小数コードパートを試し、最も単純な:

if CurrentFieldValue=Int(CurrentFieldValue) then 
    0 
else 
    2 

番号「2」あなたの小数点以下の桁数であり、あなたがあなたでそれを置き換えることができます自分の。

+0

ありがとうございます。これは私の2つの問題を解決しました。まず、これが私の必要なものです。次に、私は '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

関連する問題