代码之家  ›  专栏  ›  技术社区  ›  technomalogical

SSRS不能有条件地过滤XML数据源中的“nil”值吗?

  •  3
  • technomalogical  · 技术社区  · 17 年前

    我在SSRS2008上有一份报告,它使用web服务作为其数据源之一。返回的XML的基本外观是

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

    任何具有“nil”属性的标记在报告上显示为空白。我想用破折号代替空格。因为它是一个数字字段,并且零在报告中有意义,所以我不能简单地将web服务更改为返回零或空字符串。我尝试了几种条件比较来交换它们,但它们在报告中都显示为“#错误”:

    =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)
    

    有什么想法吗?

    编辑:

    1 回复  |  直到 17 年前
        1
  •  4
  •   Dustin Brooks    17 年前

    我在使用时没有遇到问题:

     =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>
    

    推荐文章