gpt4 book ai didi

sql-server - SSRS 无法有条件地从 XML 数据源中过滤 "nil"值?

转载 作者:数据小太阳 更新时间:2023-10-29 02:28:28 24 4
gpt4 key购买 nike

我在 SSRS 2008 中获得了一份报告,该报告使用 Web 服务作为其数据源之一。返回的 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 中的嵌套条件。删除后,我就能让它工作了。

最佳答案

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

 =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() 是否必要,因为我对数据集本身进行了转换。

关于sql-server - SSRS 无法有条件地从 XML 数据源中过滤 "nil"值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/450815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com