如何在 s-s-rs 中启用级联参数

Posted

技术标签:

【中文标题】如何在 s-s-rs 中启用级联参数【英文标题】:How to enable cascading parameters in s-s-rs 【发布时间】:2017-03-21 11:42:21 【问题描述】:

我的报告中有 5 个参数。 他们是@time_from@time_to@order_id@material@batch@sscc

我需要做以下事情:

    选择时间范围 填充过滤器
      所有订单 所有批次 所有 SSCC

    然后我必须显示所有数据。 (我一直到第 4 个条件)

    如果加载的所有数据操作员都可以选择从下拉列表中选择 1 个订单,则应该重新加载过滤器,并且只显示与该订单相关的 sscc、批次和材料。

首先,用户选择@time_from@time_to后,将启用其他参数。但是第四个案例打破了前三个条件。 第四种情况; @material@batch@sscc 取决于 order_id。 这就是我使用级联参数的原因。但是如果我不选择order_id,我将无法选择@material@batch@sscc,因为它们将被禁用。

选择@time_from@time_to参数后,我想查看所有参数,我希望@material@batch@sscc依赖order_id。

例如;当我选择@time_from@time_to 时,我必须选择@material 但是当我选择@time_from@time_to 然后我选择@order_id@material@batch@sscc 必须依赖于@order_id

我想使用级联参数,但不能禁用参数。

我附上了一些截图。我该怎么做?

1-all parameter depends on time_from and time_to parameter

2-after I choose @time_from and @time_to I want to show all parameter

【问题讨论】:

【参考方案1】:

如果您允许空值,那么您可以设置一个 SQL 查询来支持您的参数...

select
    'All' as [Label],
    null as [Value]

union all

select 
    o.Name as [Label],
    o.ID as [Value]
from dbo.Orders as [o]

这假定您的订单包含名称和 ID 列。 然后,您可以使用它来为 Orders 参数的可用值列表提供支持。 然后,您可以使用...过滤您以后的查询。

where (b.ID in (@Orders) or (@Orders) is null)

这将检查 OrderID 是否在列表中,或者订单列表是否为空(因此返回全部)。

【讨论】:

感谢您的帮助,我可以为@order 参数选择空值。 但我在报告参数属性上单击“允许空值”。 但我无法在预览页面的@order 参数附近显示空按钮。 您在选择中的“全部”值是空值 - 在此方法中您实际上并未使用复选框将其设为空 @Aylin 恐怕我不确定你在问什么。该参数是一个值列表,顶部的“All”为空值。选择此值可显示所有值,就好像没有选择特定值一样。如果您需要通常使用“All”选项的单值参数,则此方法有效。

以上是关于如何在 s-s-rs 中启用级联参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在代码中首先在 TPT(每种类型的表)继承中启用级联删除?

如何在 s-s-rS 报告中显示提供的搜索参数?

在 s-s-rS 中,如何使用多值参数创建动态“位置”条件

在 s-s-rS 报告中使用级联多选下拉菜单时,取消选中所有复选框不起作用

在 s-s-rS 2008 中,如何在文本框中同时显示多值参数的标签和值?

如何在带有参数的 s-s-rS 查询设计器中使用 IF ELSE 语句?