报表服务器:如果参数 = null 或空白,如何选择所有内容(启用多个值)

Posted

技术标签:

【中文标题】报表服务器:如果参数 = null 或空白,如何选择所有内容(启用多个值)【英文标题】:Report Server: how to select everything if parameter = null or blank (allow multiple values is turned on) 【发布时间】:2021-05-12 06:20:30 【问题描述】:

如果参数值为空或空,如何返回报表服务器中的所有内容?

解决办法:

SELECT some_column
FROM your_table
WHERE (@y is null or y >= @y)

在 s-s-rS 中不起作用,因为当参数“允许多个值”打开时,“允许空值”无法打开。

谢谢。

【问题讨论】:

【参考方案1】:

有几种方法可以解决这个问题,但最简单的方法是使用多值参数列表顶部出现的“全选”选项。如果您需要将其设为默认值,则将默认值和可用值设置为同一查询。

当列表中有多个值时,多值参数会自动显示“全选”选项,如此处所示。

其他方式类似,例如,您可以在参数的可用值列表顶部添加一个值,该值具有名为“All”或类似标签的标签以及您可以在查询中查找的值(例如 -1 )。

顺便说一句:如果直接在数据集查询中使用您的示例代码将无法使用多值参数,您通常会执行类似的操作

SELECT some_column
FROM your_table
WHERE (@y =-1 OR y IN(@y))

【讨论】:

艾伦,非常感谢您的建议。我没有在参数属性/常规中找到“全选”选项。我在哪里可以找到这个?关于我的代码,每次我尝试将 @y 与某些东西(无论如何)进行比较时,它都会引发错误。我现在所做的一切:1)放置查询:where(y in(@y)或@y ='')2)定义查询参数:y = 3)报告参数属性:y =允许空白值(' ') - 好的,允许多个值 - 好的。 我已经编辑了答案以显示“全选;选项。没有属性可以打开/关闭它,它会自动显示。关于你得到的错误,你可能想就此提出一个新问题。确保包含示例数据和您正在使用的数据集查询。还显示参数的值和标签字段是从哪里设置的 艾伦,谢谢你的解释。全选并不是我所需要的,因为我需要将值列表复制到单元格中。全选需要在每个现有值前面手动设置“检查是否正常”。由于无法检查多个值是空还是空白,我通过添加一个布尔参数来解决这个问题。如果参数为 True,则“选择 ... where”,如果为 False,则“选择没有 where”。它不纤薄但可行。 啊,好吧,我没有意识到您打算这样填充参数值。

以上是关于报表服务器:如果参数 = null 或空白,如何选择所有内容(启用多个值)的主要内容,如果未能解决你的问题,请参考以下文章

如何添加子报表和参数

如何在报表打印时,将多页合为一页

如果搜索参数为空白或缺失/错误,我如何使用 Xpath 函数“contains()”不返回任何内容?

通过链接报表中的返回链接按钮返回原始报表,主报表中带有多选参数

在标题中使用报表参数

sap软件报表打开空白