3

データ ソースの 1 つとして Web サービスを使用している SSRS 2008 のレポートがあります。返される XML の基本的な外観は次のとおりです。

<table>
    <row>
        <column1>data</column1>
        <column2 xsi:nil="true" />
        <column3>data</column3>
    </row>
</table>

「nil」属性を持つタグは、レポート上で空白として表示されます。空白をダッシュ​​に置き換えたいです。これは数値フィールドであり、レポートではゼロに意味があるため、単純に Web サービスを変更してゼロまたは空の文字列を返すことはできません。それらを交換するためにいくつかの種類の条件付き比較を実行しようとしましたが、それらはすべてレポートに「#Error」として表示されます。

=iff(Field!column2.Value Is Nothing, "-", Field!column2.Value)
=iff(IsNothing(Field!column2.Value), "-", Field!column2.Value)
=iff(Field!column2.Value = "", "-", Field!column2.Value)
=iff(CStr(Field!column2.Value) = "", "-", Field!column2.Value)

何か案は?

編集:失敗したのは空のチェックではなく、最初の IIF 内のネストされた条件でした。削除したら、私はそれを機能させることができました。

4

1 に答える 1

4

私は使用に問題はありませんでした:

 =Iif(cstr(First(Fields!RegInceptionDate.Value, "spimRptPerfSummary")) = "", "-", First(Fields!RegInceptionDate.Value, "spimRptPerfSummary"))

これは私のデータセットがどのように見えるかです:

<Query>
   <Method Namespace="http://www.abc.com/" Name="TWRPerformanceSummary"/>
   <SoapAction>http://www.abc.com/TWRPerformanceSummary </SoapAction>   
   <ElementPath IgnoreNamespaces="true">
        TWRPerformanceSummaryResponse/TWRPerformanceSummaryResult/diffgram/NewDataSet/table{PkRegistration, InceptionDate(date),RegInceptionDate(string)}
   </ElementPath>
</Query>

私の式はテキストボックスにありました。そのため、DataSetのFirst()でラップしました。データセットのRegInceptionDateを文字列としてキャストしました(実際には日付ですが、nullが返されるため、問題ではありませんでした)。データセット自体にキャストがあるため、式のcstr()が必要かどうかはわかりません。

于 2009-01-16T15:55:31.540 に答える