0

Tablix合計をグループ化する場所があります。ただし、列のデータはstringintdecimalなどになる場合があります。呼び出されたストアド プロシージャに依存します。注: これは動的なプロセスです。

DataTable 値の設定

var queryResult = typeof(MethodsToRdlc).GetMethod(conf.SelectMethod).Invoke(new MethodsToRdlc(), new object[] { });
DataTable result = queryResult.ToDataTable();

したがって、データがdecimalまたはintまたはその他の数値型の場合、すべてを my に合計したいと思いTotalます。それを行うために、素敵に機能する次の式があります。

トータルエクスプレッション

=Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ",")

ただし、データ型が数値でない場合、#Errorが発生します。#Errorを空の文字列に置き換えるにはどうすればよいですか (たとえば)?

私はすでにこれを試しました:

=IIf(IsNumeric(Fields!DataColumn8.Value), Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","), "")

この

=IIf(IsNumeric(Replace(Fields!DataColumn8.Value, ",", ".")), Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","), "")

この

=IIf(CDbl(Fields!DataColumn8.Value) = 0, "", Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","), "")

この

=IIf(CDbl(Replace(Fields!DataColumn8.Value, ",", ".")) = 0, "", Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","), "")

この

=IIf(IsNothing(IsNumeric(Replace(Fields!DataColumn8.Value, ",", "."))), "", Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","))

何も機能しません...常に#Errorが表示されます。

4

1 に答える 1

0

オプション 1: SSRS は短絡しませんiif。文字列値が渡された場合でも、真と偽の両方の部分を評価します。#Errorそれがあなたの表現を引き起こしている理由です。

このようなものでtrue句を更新します

Fields!DataColumn8.ValueIIF(IsNumeric(Fields!DataColumn8.Value),Fields!DataColumn8.Value,0)

=IIf(IsNumeric(Fields!DataColumn8.Value)
      , Replace(Format(Sum(CDbl(Replace(
       IIF(IsNumeric(Fields!DataColumn8.Value),Fields!DataColumn8.Value,0.0)
      , ",", "."))), "F"), ".", ","), "")

それでもエラーが発生する場合は、true 句を withCSTRとともに変換IIFして 0 に置き換えてみてください。

オプション 2: SQL クエリで処理します。

于 2016-01-15T21:50:16.703 に答える