SSRS报告传递多个VALUES以钻取报告参数

时间:2017-12-15 16:32:29

标签: reporting-services ssrs-tablix drillthrough

我按层次顺序创建了一个包含5个字段的报告:

  • 订单日期
  • 时间(上午/下午)
  • 父母姓名(又名客户)
  • 产品系列
  • BIC零件编号(又名项目)

parent report tablix

每个字段都会扩展到下一个级别,因此订单日期会扩展到一天中的某个时间等。

我想创建一个钻取报表,以便用户可以单击层次结构的每个级别并查看详细信息。

这在最低级别工作正常 - 项目 - 因为每个字段中只有1个值必须传递给钻取报表参数。但是,例如,当我尝试根据产品系列进行钻取时,此产品系列中通常会有3个或4个项目。在Go To操作中,我将钻取参数“bic_part”设置为主报告FIELD值“BIC Part Number”。

go to action dialog

我在钻取报告集中有Tablix,其中“BIC零件编号”在[@bic_part]中。

child report tablix filters

我只想清楚,我将一组报告字段值传递给钻取报告参数,而不是参数参数。

我尝试使用带有=Split(Join(field value),","),",")的表达式及其所有变体。我似乎无法让子报表过滤器接受来自父报表的BIC Part Number字段中的多个值。

我也尝试省略BIC Part Number部分中的go to report值,但它不会让我。

子报告中的所有参数都设置为接受多个值。我的两个报告的数据源都是相同的存储过程,因此我可以添加查询过滤器。我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为每个子报表链接都需要稍有不同。

在子报表中,每个参数都需要接受null,而您的查询需要查找

(FieldName = @FieldNameParameter or @FieldNameParameter is null)

这将允许您传递尽可能低的实体值,然后为所有子值传递null。

如果我们正在查看Parent_Number级别,则在该子报表链接上,您将传递Fields!Parent_Number.Value,然后再为每个较低的参数(Product_Line,BIC_Part_Number)传递任何内容。

这将使您可以过滤子报表中的较低公共分母-该链接的Part_Number,下一个向下的Product_Line等。

我以前在报表中使用过此逻辑,因此它确实有效。让我知道我的解释是否需要澄清-今天是星期五下午。