2015-04-24 196 views
0

在现有的ssrs 2008 r2报告中,我有一个要求,即用户要在报告中添加2个参数。现在有一个选项SQ Server 2008 R2报告服务:可选参数值和报告

其中用户可以选择生成报告1,报告2,报告3,报告4,报告5,报告6,报告7,报告8和/或我刚刚列出的报告的任意组合。

这是设置在visibility属性为每个8个tablixes的使用表达式。

为了您的信息,下面是如何显示的一个报告或不举例:

=iif(InStr(join(Parameters!report.Value,","),6)>0,false,true) 

现在用户要根据是否报告7,能够增加客户的参数和inventory_item和/或选择报告8。

现在你可以告诉我下面的:

  1. 你会告诉我的代码,我可以在数据集中用它来选择报告7和/或报告8?
  2. 这是否考虑使用“可选”参数,因为如果选择了report7和/或report8,inventory_item的新参数将基于这些参数。如果是这样,你能告诉我如何编码这些可选参数吗?
  3. 如果上面是无法选择具体的报告,然后将数据集查询需要看起来像: where @report is null or where @report is not null?你会建议什么?
  4. 如果上述选项不可用于2个新参数,我是否会选择所有项目(或一个项目),以便报告始终运行?
+0

你的意思是,如果客户选择报告7或8汇报,他希望除了什么是当前显示的客户和Inventory_Item tablixes看? – Ewan

回答

0

对于您的额外参数,您可以检出级联参数http://www.mssqltips.com/sqlservertip/3466/cascaded-parameters-in-sql-server-reporting-services/)。

基本上,您需要添加新的参数,但除非报告7或8中选择不使用它们的过滤器。不幸的是,没有一种我知道的基于另一个参数选择来禁用参数的方法。

我从您的表情中猜测,您的报告参数仅基于所选报告返回值1 - 8。这个例子应该从报告6:

=IIF(InStr(Join(Parameters!report.Value, ","), 6) > 0, false, true) 

过滤使用新inventory_item参数会是这样的:

=IIF(InStr(Join(Parameters!report.Value, ","), "7") > 0 
OR InStr(Join(Parameters!report.Value, ","), "8") > 0, 
IIF(Parameters!inventory_item.Value = Fields!inventory_item.Value, TRUE, FALSE), TRUE) 

这只会通过inventory_item如果报表限制数据在7或8