SSRSのフィールドを小数点以下の桁数に丸める方法を探しています。私はそれを動的にフォーマットすることができ、最終的にそれになるかもしれないことは知っていますが、多くのユーザがこのレポートをExcelに直接持ち帰り、実際の数値フィールドが必要になります。SSRSの小数点以下桁数を丸める
NumLong01 DECIMAL(23,8)
, NumLongDP01 INTEGER
この表のエントリの最初のセットはヘッダと丸めパラメータのためのものである:
マイT-SQLコードでは、これらの宣言された変数を含みます。だから私は、これらの2の値を追加します。
NULL
,4
そして私はと実際のテーブル値を追加します。私はテーブルに数字のシリーズ全体を置くことができますこの方法
987654321.87654321
,NULL
しかし、それらはすべて持っています同じようにフォーマットされます。
私はReportBuilderに行くとき、私のフィールドは、この表現があります:私は、小数点以下の一定数をフォーマットしたい場合は
=Fields!NumLong01.Value
をこのクエリの収量を実行
私はちょうどこれを行うことができます:
=Round(Fields!NumLong01.Value,2)
またはそのようなものです。私が実行しようとしましたどのような、しかし、それを動的にすることでした。
=Round(Fields!NumLong01.Value,First(Fields!NumLongDP01.Value, "DataSet1"))
これは0小数点以下の桁数に丸めてしまいました。私はその後、自分のフィールドで後半を使うだけで、これがNULL値であることを学びました。だから私はSumの代わりにSumを試してみました。私のフィールドでは、私は4を得ました。グレート、今、私は私の番号を持っていた、と私はちょうど私の丸めなどのことを中に入れた:
=Round(Fields!NumLong01.Value,Sum(Fields!NumLongDP01.Value, "DataSet1"))
唯一の問題は、これはエラーを生成します。次に何らかの理由でこれを数字と見なしていないのかどうか、私は自分自身に尋ねました。だから私は自分のフィールドに追加しました。問題はありません。だから私は本当にそれが何をしているのか分からない。このフィールドが長くなりすぎて、不規則な数の小数点以下の桁に丸められると考えていますか?
=IIf(Sum(Fields!NumLongDP01.Value, "DataSet1") = 8,Round(Fields!NumLong01.Value,8),IIf(Sum(Fields!NumLongDP01.Value, "DataSet1") = 7,Round(Fields!NumLong01.Value,7),IIf(Sum(Fields!NumLongDP01.Value, "DataSet1") = 6,Round(Fields!NumLong01.Value,6),IIf(Sum(Fields!NumLongDP01.Value, "DataSet1") = 5,Round(Fields!NumLong01.Value,5),IIf(Sum(Fields!NumLongDP01.Value, "DataSet1") = 4,Round(Fields!NumLong01.Value,4),IIf(Sum(Fields!NumLongDP01.Value, "DataSet1") = 3,Round(Fields!NumLong01.Value,3),IIf(Sum(Fields!NumLongDP01.Value, "DataSet1") = 2,Round(Fields!NumLong01.Value,2),IIf(Sum(Fields!NumLongDP01.Value, "DataSet1") = 1,Round(Fields!NumLong01.Value,1),Round(Fields!NumLong01.Value,0)))))))))
を...、それは動作します:
今、私はこれを行うことができます。しかしそれはそれについて行くそのようなばかげた方法のように思えます。
また、t-SQLから四捨五入した数値だけを渡すことも快適です。しかし、数値書式で何らかの理由で小数点以下の桁数が動的に変化することはないため、レポートには一定の数の小数しか表示されないという問題があります。
すべてのアイデアをいただければ幸いです。
その後、私は、フォーマットとして「N4」を使用してみました、そしてそれは実際にこれまでのところ、私としてExcelで働いていました伝えることができます。それは私が他のレポートを修正したときに過去に必ずしもそうではなかったが、私はなぜそれがわからない。それで私がそれをそのように動作させることができれば、私は満足しています。しかし、私が望んでいたように私の初期の丸めアプローチがなぜうまくいかなかったのかを知ることは、まだ興味があります。 – DaveX
新しいアップデート:これまで私が以前使っていたExcelと同じ問題があります。ただ1行で、私は追加することが何もなかったので、私はちょうどそれに4のような固定数を追加し、それは私に合計を与えた。したがって、それはExcelの数値フィールドでなければなりません。違う。私は複数の行をすると、右下隅に(合計ではなく)カウントが得られます。そして、私の数の合計は0です。私はIIfの私の狂気のセットに戻ります。 – DaveX
私は解決策を提案する前に、ほんの数回の短い質問をします。小数点以下はデータセットの最初の行として指定する必要があります。また、テーブル構造を変更することは許可されていますか?最後に、なぜあなたは具体的に小数点の可変(動的)番号を持つ必要がありますか? 0のパディングを避けるのですか? –