2009-04-13 90 views
0

有没有办法在SSRS 2005中执行“and”或“filters”?Reporting Services 2005筛选器

我有一个表指向一个数据集(存储过程),看起来像这样:

name      type     amount 
License Plate Credit   fees    ($150.00) 
Lieu Tax      fees    $1,012.12 
Finance Tax City    taxes    $1,839.90 
Finance Tax County    taxes    $306.65 
Finance Tax State    taxes    $3,434.48 

用户希望看到包含所有行:

  1. 类型=“税”或
  2. 类型=“费”和名称=“辽税”

我需要做这个报告的原因而不是存储过程是因为 我们将创建多个报告指向相同的存储过程,具体取决于 每个客户端如何布局显示和业务规则。

需求说明 我希望有一种方法可以在报告中使用,而不是proc。该计划将有许多自定义报告指向具有不同要求的相同过程。这个想法是为了让报表编制者(不知道SQL)创建报表,而不是我们程序员总是需要参与的。

回答

1

每种可能的条件组合都是合格或不合格。您可以使用SWITCH来评估每个可能的条件,并返回1或0.然后在过滤条件中使用“=”和“= 1”。

= SWITCH(TYPE = “税”,1, TYPE = “费” NAME = “辽税”),1, 1 = 1,0 )

您可以处理整个过滤用这种方式在一个单一的表达。奇迹般有效。

1

您应该修改存储过程以接受类型和名称之类的参数,然后从报告中根据用户要求使用正确的值调用此存储过程。报告服务报告确实有一个称为报告参数的功能。因此,您应该将报告转换为接受来自用户&的类型和名称参数,并将其传递到存储过程。要为多个用户创建多个报告,您只需从这一个模板报告中创建具有不同参数值的多个链接报告。

+0

我希望有一种方法可以在报告中代替proc。该计划将有许多自定义报告指向具有不同要求的相同过程。这个想法是为了让报表编制者(不知道SQL)创建报表,而不是我们程序员总是需要参与的。 – 2009-04-15 12:52:00

+0

您是否看过Reporting Services中的链接报告功能?如果您有一个接受参数值的模板报告功能,您的最终用户可以使用不同的参数值从此一个模板报告中创建尽可能多的链接报告。这比建设者更容易 – msvcyc 2009-04-15 16:59:38

0

变化PROC是

SELECT 

xxx 

FROM 

xxx 

WHERE (a.id = @aID OR @aID IS NULL) 
AND (b.id = @bID OR @bID IS NULL) 
AND (c.id = @..... 

在一个值或NULL只是通过从报告

0

是的,有。 用数据打开表格或矩阵的表格属性。 有一个“过滤器”选项卡允许您在查询执行后过滤数据。