1

マトリックス レポートの同じ列に異なるデータ型を持つ SSRS レポートがあります。フォーマットせずにデータを表示すると、すべてのデータが表示されます。ただし、整数にカンマ区切り、小さい値には小数点以下3桁を使用し、値をテキストの場合はそのまま表示したいと考えています。

整数と小数値は正しく表示されますが、テキストを含むセルには #error が表示されます。値のフォーマットは次のとおりです。

=IIF(InSTR(Fields!KPIValue.Value, ".") > 0, FORMAT(CDbl(Fields!KPIValue.Value), "0.000"), 
     IIF(InSTR(Fields!KPIValue.Value, "/") > 0, Fields!KPIValue.Value, FORMAT(CInt(Fields!KPIValue.Value), "###,###,###,##0"))) 

レポートの詳細データ領域の値式でこのコードを使用しています。以下は、書式設定を行った場合と行わない場合のデータのサンプルです。

Unformatted   Formatted

17398549      17,398,549

94/04/28      #Error

00/03/34      #Error

00/00         #Error

1.067         1.067

0.829         0.829

0.000         0.000

24020         24,020

この問題を解決するための支援をいただければ幸いです。

4

1 に答える 1

2

SSRS はステートメントを短絡しないためIIf、式のすべての部分がフォーマットされているためエラーが発生し、データ型エラーが発生するものもあります。

これを解決して目標を達成するには、レポート カスタム コードでこれを行う必要があります。次のような関数を作成します。

Function FormatValue (KPIValue As String) As String
  If IsNumeric(KPIValue) And InStr(KPIValue, ".") > 1 Then
    FormatValue = Format(CDbl(KPIValue), "0.000")
  Else If IsNumeric(KPIValue) Then
    FormatValue = Format(CInt(KPIValue), "###,###,###,##0")
  Else
    FormatValue = KPIValue
  End If
End Function

次に、レポートで次のように呼び出すことができます。

=Code.KPIValue(Fields!KPIValue.Value)

あなたのデータでうまくいきました:

ここに画像の説明を入力

カスタム コードで、ロジックを少し移動したことに注意してください。これは私には理にかなっていますが、あなたに合ったもので、完全なデータセットで行ってください.

于 2013-10-09T21:34:20.990 に答える