加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

在SQL Server报表服务中实现级联参数

发布时间:2020-12-12 12:39:28 所属栏目:MsSql教程 来源:网络整理
导读:前段时间有位朋友问到了怎么样在报表服务里面实现级联的 参数 ,也就是一个参数的可选值列表由另外一个参数确定。我答应这位朋友写一篇博客来说明怎么写这种报表。不过由于最近杂务缠身就一直拖到了现在,真是抱歉。 我们举一个级联参数的例子,用 SQL Server
前段时间有位朋友问到了怎么样在报表服务里面实现级联的参数,也就是一个参数的可选值列表由另外一个参数确定。我答应这位朋友写一篇博客来说明怎么写这种报表。不过由于最近杂务缠身就一直拖到了现在,真是抱歉。

  我们举一个级联参数的例子,用SQL Server 2005自带的AdventureWorks数据库作为数据源。AW里面有三张表:Product,ProductSubcategory和ProductCategory。

  我们现在就来实现级联参数的报表,报表最终会有两个参数:Category和Subcategory。用户首先要选择Category,然后Subcategory参数列表中就只会有被选择的Category下的Subcategory,用户选择Subcategory,然后报表就会显示选定Subcategory下的产品信息。

  第一步:

  为Category参数准备一个数据集“Category”作为参数的数据源,数据集的查询代码相当简单:

  SELECT ProductCategoryID,Name

  FROM Production.ProductCategory

  将新建的数据集绑定到Category参数上,并指定Category参数的Label为Name,Value为ProductCategoryID。如下图:

  第二步:

  为Subcategory参数准备一个数据集“Subcategory”作为参数的数据源,这个数据集的查询就要使用Category参数来对数据进行过滤,查询代码如下:

  SELECT ProductSubcategoryID,Name

  FROM Production.ProductSubcategory

  WHERE ProductCategoryID = @categoryID

  将新建的数据集绑定到Subcategory参数上,并指定Subcategory参数的Label为Name,Value为ProductSubcategoryID。如下图:

  第三步:

  现在可以写报表的数据源定义了,这个就更简单了:

  SELECT Production.Product.Name,Production.Product.StandardCost,Production.Product.ListPrice

  FROM Production.Product

  WHERE Production.Product.ProductSubcategoryID = @subcategoryID

  然后就是拖一个Table数据控件,绑定上数据源就OK了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读