Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssrs 2008 SSRS文本框中显示空值或空值_Ssrs 2008_Reporting Services - Fatal编程技术网

Ssrs 2008 SSRS文本框中显示空值或空值

Ssrs 2008 SSRS文本框中显示空值或空值,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,使用SSRS(2008)您发现的处理null或空值并用其他显示内容替换它们的最佳方法是什么。显而易见的解决办法是 =IIF(IsNothing(Fields!MyField.Value),"NA",Fields!MyFields.Value) 这样做虽然很乏味,但我希望在textbox上找到类似于EmptyText属性的内容,但可惜什么都没有。有什么想法吗?我是否应该从创建此属性的文本框基础中创建自定义报告项?虽然可能没有比您的解决方案更好,但您可以使用COALESCE调整T-SQL以返回相同

使用SSRS(2008)您发现的处理null或空值并用其他显示内容替换它们的最佳方法是什么。显而易见的解决办法是

=IIF(IsNothing(Fields!MyField.Value),"NA",Fields!MyFields.Value)

这样做虽然很乏味,但我希望在textbox上找到类似于EmptyText属性的内容,但可惜什么都没有。有什么想法吗?我是否应该从创建此属性的文本框基础中创建自定义报告项?

虽然可能没有比您的解决方案更好,但您可以使用COALESCE调整T-SQL以返回相同的结果:

SELECT MyField = COALESCE(table.MyField, " NA")

NA之前的额外空间的理由是允许排序将NA结果放在顶部。因为您的数据可能会有所不同,所以这可能不是一个很好的选择。

调用自定义函数


您可以始终在其中放置case语句来处理不同类型的“空白”数据。

我同意在SQL端执行替换,但使用ISNULL函数将是我的选择

SELECT ISNULL(table.MyField, "NA") AS MyField

我通常在我们的SQL服务器上处理尽可能多的数据,并尝试在SSR中尽可能少地处理数据。这主要是因为我的SQL server比我的SSRS服务器强大得多

SQL或报表代码(根据adolf大蒜的功能建议)

此时此刻,我会在报告中这样做。对于繁忙的OLTP服务器和不受欢迎的报表服务器,我只有很少的报告。如果我有一个不同的组合,我会用SQL


任何一种方式都是可以接受的…

我不同意在服务器端转换它。如果这样做,它将以字符串类型返回,而不是包含所有内容的日期类型(例如,它将作为字符串排序)

我处理日期的原则是尽可能长时间地将它们作为日期键入


如果您在报表服务器上遇到性能瓶颈,有更好的方法来处理它,而不是牺牲您的逻辑。

我无法让
IsNothing()
正常工作,我不想在我的
数据集中创建虚拟行(例如,对于给定的客户列表,每月创建一个虚拟订单)并注意到空值显示为-247192

请注意,使用它可以抑制它(至少在MSFT将SSR从08R2改为更好之前),所以请原谅我,但是:

=iif(Fields!Sales_Diff.Value = -247192,"",Fields!Sales_Diff.Value)

我也遇到过类似的情况,但以下几点对我最为有效

=Iif(Fields!Sales_Diff.Value)>1,Fields!Sales_Diff.Value),"")
用这个表达你可能会得到答案

这里CStr是处理字符串数据类型的默认函数。

试试这个

=IIF(IsNothing(Fields!MyField.Value)=TRUE,"NA",Fields!MyFields.Value)

选择这个答案是因为大多数其他人在sql中处理ISNULL,而这不是特定于SSRS的解决方案。有效的解决方案,但问题范围仅限于SSR。这并不总是可行的。如果是
矩阵
,则可能会出现导致“漏洞”的
枢轴
场景在您的字段中,因为您的SQL中包含了
内部连接和
左连接将导致成本损失。我倾向于使用
合并
而不是
IsNull
,因为我同时使用Oracle和SQL Server,并且
合并
可以同时使用这两种方法。我同意这种方法。从服务器获取结构和类型正确的数据,然后决定如何在报告层中显示它是有意义的。nulls以这种方式显示的唯一可能原因是,如果您的某个表达式没有正确解释它们,并且在它们发生时返回了奇怪的结果,在这种情况下,这将是你的问题,而不是微软的。
=IIF(IsNothing(Fields!MyField.Value)=TRUE,"NA",Fields!MyFields.Value)