cancel
Showing results for 
Search instead for 
Did you mean: 

Crystal Reports XI:小数点以下の桁数を数値によってかえるには?

Former Member
0 Kudos

お世話になります。

Crystal Reports XI Developer Edition で開発しております。

質問は、フィールド(数値)の小数点以下の桁数を数値によって、小数点以下なし、小数点第1位まで、小数点第2位までと表示を変えるにはどうすればよいですか?

例えば、 1 のときは 1 (1.00 は×)

     0.5 のときは 0.5 (0.50 は×)

    0.25 のときは 0.25

テーブルのデータ型は float です。(SQLServer)

データ型を 文字列(string) に変えれば良いとは思いますが、クリスタルレポートの設定でなんとかなるのであれば、そちらが良いです。

ちなみに式も考えました。

数値を文字列に変換し、小数点より右の「0」は長さ0の文字列に置換する。など。この方法は式を作って、フィールド(数値)と置き換えないといけませんので、設定でなんとかなる方が良いです。

あと、クリスタルレポートの「フィールドの書式」-「ユーザー設定」-「カスタムスタイル」-「数値」-「小数点以下の桁数」を 「1.00」 とすると、1のとき「1.00」と表示されます。本来は「1」と表示したいです。

設定だけでは、無理なのでしょうか?

どなたかカスタムスタイルでの設定方法を教えていただけませんでしょうか?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

該当フィールドの書式設定の「小数点以下の桁数」の条件式を利用してみたらどうでしょうか。

こんな感じです。

WhilePrintingRecords;

If Right(ToText({フィールド}),3) =".00" Then

0

Else

2

数値フィールドを文字列に変換し、小数点以下が ".00" であれば、0 を設定します。

これは、小数点以下の桁数がなしを意味します。

それ以外は、2 (小数点以下の桁数) とします。

Former Member
0 Kudos

24x7様

回答ありがとうございます。

上記の方法で意図した結果となりました。

正確に言うと、フィールドに次の設定を行いました。

小数点以下の桁数 -> 1.00 (2桁)

条件式:

WhilePrintingRecords;

If Right(ToText({フィールド}),2) ="00" Then

0

Else If Right(ToText({フィールド}),1) ="0" Then

1

Else

2

端数処理 -> 0.01

また何かあったら質問させてください。

宜しくお願いします。

former_member583013
Active Contributor
0 Kudos

>

> 24x7様

>

> 回答ありがとうございます。

> 上記の方法で意図した結果となりました。

mika toyama 様、

無事、問題は解決できたようですね。

[ルール: 質問をする前、する時、した後に... |;

をご覧の上、回答者へのポイント付与とスレッドのステータスの変更をお願いします。

SCN フォーラムモデレーター

Answers (0)