7

レポートを作成していて、正確な 10 進数値が必要です。数値は小数点以下 2 桁の値を持つことができ、数値は 10 の値を持つことができます。小数点以下の範囲を 10 桁に設定すると、その列には常にほとんどが 0 の小数点以下 10 桁が表示されます。値に 0 が含まれている場合、それを無視するにはどうすればよいですか? たとえば、次のようにデータを表示するのが好きです。

123.24
98.234
1212.678432

それ以外の:

123.2400000000
98.2340000000
1212.6784320000
4

4 に答える 4

12

以下をせよ:

  • このフォーマットを適用する「詳細」テキストボックスを右クリックします
  • 「フォーマットフィールド」をクリック
  • 「番号」タブをクリック
  • 「カスタマイズ...」をクリックします。
  • このレポートにフィードするテーブルの DECIMAL スケールを反映するように、適切な "Decimals" と "Rounding" の値を設定します
  • 「小数」数式ボタンをクリックします
  • 次のコードを貼り付け、手順/列を反映するように {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, ".");
    

重要:

  1. 「{myproc;1.col1}」を実際に使用している変数に変更します。
  2. 最後の行は、表示される小数点以下の桁数を指定する式です。したがって、余分なゼロをすべて削除した後、トリミングされた文字列の長さでピリオドの位置を差し引いて計算します。
于 2013-06-24T21:36:06.507 に答える
0

このフィールドで計算を行わずにレポートするだけの場合、数値ではなく文字列としてレポートに入力できますか?

于 2013-06-24T21:38:27.740 に答える
0

これにより、フィールドを数値として保持でき、テキストに変換する必要がなくなります。この解決策は、小数点の書式を変更することです。

•このフォーマットを適用する「詳細」フィールドを右クリックします。

•「フォーマットフィールド」をクリック

・「番号」タブをクリック

•「カスタマイズ...」をクリック

保持したい最大の小数点以下の桁数から始めて、その行を逆方向に複製します。たとえば、保持したい値を持つ小数点以下の最大位置がわかっている場合は、その数値、つまり 1.2345600 で開始します。数値が 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
于 2015-04-28T14:07:54.433 に答える