当前位置:首页 > 系统运维 > 正文内容

在SQL Server报表服务中使用报表参数(1)

a8116255310年前 (2015-10-04)系统运维9

当你在使用报表时,你需要添加参数来缩小报表范围进行更好的分析。你将经常看到你需要不止一个的参数,第二个参数可能取决于之一个参数,通常要求你基于之一个参数更新第二个参数。

此外,你可能需要添加具有多个和/或默认值的参数。该文讲述怎样在SQL Server 2005报表服务(SSRS)中创建参数。

前提要求

要理解该文文章的内容,你应该对在SSRS中创建报表有所了解,因为该文会详细地回顾怎样在SSRS中创建报表。然而,我将在讲述SSRS报表的创建时尽可能多地介绍。还有,你将需要知道怎么编写连接两个或更多表的基本T-SQL 查询。

为了达到有效地利用资源,你需要将SQL Server 2005和SQL Server商业智能开发套件安装在一起。因为我将使用AdventureWorks 示例数据库中的数据,假如你在你的SQL Server 版本中安装了AdventureWorks 数据库,那将会简单得多。

示例

因为通过示例对读者进行解释总是很有帮助的,所以让我们假设我们想要根据雇员的国家、州/省和城市列出雇员。用户应该有一个选择国家的选项。根据选出的国家,大家要列出所选国家的州/省。在选择了一个州后,我们应该列出相关的城市,并且用户应该具有能从列表中选择一个或多个城市的选项。根据选择的一个或多个城市,最后用户应该就可以得到一个符合标准的雇员列表。

实现

首先,你必须从SQL Server商业智能中创建一个报表服务项目,然后添加一个报表到这个项目中。接下来是创建一个指向AdventureWorks数据库的共享数据源。我们现在需要为国家添加一个数据集。你可以通过在数据集列表框中选择‘选项’从数据库标签添加这个数据集。然后如下图所示的配置dsCountry数据集。

 

下一个工作是将这个dsCountry 分配给一个报表参数。从报表菜单中选择‘Report Parameters’选项。

下面是你应该看到的一个截屏。

 

上面对话框中的选项有:

Name – 参数的名称。当你选择了一个值后,这个值会存储在这个参数中。因为这是一个变量名称,所以你不能在这个字段中包含有特殊字符(*,!或空格等等)。

Data Type – 参数的数据类型。这个选项的选择包括:Boolean、Datetime、Integer、Float 和string。在这个例子中,我们将选择‘String’用于国家参数。

Prompt – 提示就是你在报表中将看到的。因为它是一个标签,所以你可以在提示中使用任何字符。

下面的属性如它们的名称所显示的一样简单。Hidden和Internal 的不同之处是Hidden变量可以改变而internal 变量则不能。

下一步是给参数赋值。

当参数具有固定值如是/否、男/女等时,应该使用非询问选项。询问选项是从一个数据集给参数赋值。在这个示例中,数据集是dscountry,我们需要添加两个值:值字段和标签字段。标签字段是用户将会看到的,而值字段是将要存储在参数中的。在这个示例中,假如用户选择了United Status,那么在国家参数中将存储的值是US。

下一步是赋予缺省值。一个缺省值使得用户可以更容易地使用报表,因为缺省值是用户最可能选择的值。例如,在这个报表中用户选择United States,所以将United States 作为缺省值使得用户可以更容易地填写表格。

使用另一个参数的参数

下一个工作是创建州/省参数。如同我前面所说的,州/省参数取决于在之一个询问中用户所选择的国家,所以在我们的州/省数据集中,我们应该编写询问来达到这个标准。

 

你从上面的图片中可以看到包含了‘@Country’用于询问。这个@Country 变量将获得用户选择的国家参数的值。

接下来是创建一个叫做Province的报表参数,并将它附加到dsProvience数据集中。这个的做法和Country 参数的做法一样。Province 报表参数屏幕如下图所示。

 

因为我们已经做了接近一半的报表工作,所以我们该做个简单测试了,点击“preview”标签。你可以看到当你改变国家时省份列表也跟着改变了。例如,当国家是Australia和Germany时会看到下面两个图片。

 

多值参数

在配置了国家和省参数之后,现在大家要配置城市参数。城市数据没有主表。我们将使用Person.[Address]表来获得一个城市列表作为工作区。因为城市取决于所选的省,所以我们需要使用@Province 参数来获得城市列表。下面是城市数据集dsCity的截屏。

当你在使用报表时,你需要添加参数来缩小报表范围进行更好的分析。你将经常看到你需要不止一个的参数,第二个参数可能取决于之一个参数,通常要求你基于之一个参数更新第二个参数。

此外,你可能需要添加具有多个和/或默认值的参数。该文讲述怎样在SQL Server 2005报表服务(SSRS)中创建参数。

前提要求

要理解该文文章的内容,你应该对在SSRS中创建报表有所了解,因为该文会详细地回顾怎样在SSRS中创建报表。然而,我将在讲述SSRS报表的创建时尽可能多地介绍。还有,你将需要知道怎么编写连接两个或更多表的基本T-SQL 查询。

为了达到有效地利用资源,你需要将SQL Server 2005和SQL Server商业智能开发套件安装在一起。因为我将使用AdventureWorks 示例数据库中的数据,假如你在你的SQL Server 版本中安装了AdventureWorks 数据库,那将会简单得多。

示例

因为通过示例对读者进行解释总是很有帮助的,所以让我们假设我们想要根据雇员的国家、州/省和城市列出雇员。用户应该有一个选择国家的选项。根据选出的国家,大家要列出所选国家的州/省。在选择了一个州后,我们应该列出相关的城市,并且用户应该具有能从列表中选择一个或多个城市的选项。根据选择的一个或多个城市,最后用户应该就可以得到一个符合标准的雇员列表。

实现

首先,你必须从SQL Server商业智能中创建一个报表服务项目,然后添加一个报表到这个项目中。接下来是创建一个指向AdventureWorks数据库的共享数据源。我们现在需要为国家添加一个数据集。你可以通过在数据集列表框中选择‘选项’从数据库标签添加这个数据集。然后如下图所示的配置dsCountry数据集。

 

下一个工作是将这个dsCountry 分配给一个报表参数。从报表菜单中选择‘Report Parameters’选项。

下面是你应该看到的一个截屏。

 

上面对话框中的选项有:

Name – 参数的名称。当你选择了一个值后,这个值会存储在这个参数中。因为这是一个变量名称,所以你不能在这个字段中包含有特殊字符(*,!或空格等等)。

Data Type – 参数的数据类型。这个选项的选择包括:Boolean、Datetime、Integer、Float 和String。在这个例子中,我们将选择‘String’用于国家参数。

Prompt – 提示就是你在报表中将看到的。因为它是一个标签,所以你可以在提示中使用任何字符。

下面的属性如它们的名称所显示的一样简单。Hidden和Internal 的不同之处是Hidden变量可以改变而internal 变量则不能。

下一步是给参数赋值。

当参数具有固定值如是/否、男/女等时,应该使用非询问选项。询问选项是从一个数据集给参数赋值。在这个示例中,数据集是dscountry,我们需要添加两个值:值字段和标签字段。标签字段是用户将会看到的,而值字段是将要存储在参数中的。在这个示例中,假如用户选择了United Status,那么在国家参数中将存储的值是US。

下一步是赋予缺省值。一个缺省值使得用户可以更容易地使用报表,因为缺省值是用户最可能选择的值。例如,在这个报表中用户选择United States,所以将United States 作为缺省值使得用户可以更容易地填写表格。

使用另一个参数的参数

下一个工作是创建州/省参数。如同我前面所说的,州/省参数取决于在之一个询问中用户所选择的国家,所以在我们的州/省数据集中,我们应该编写询问来达到这个标准。

 

你从上面的图片中可以看到包含了‘@Country’用于询问。这个@Country 变量将获得用户选择的国家参数的值。

接下来是创建一个叫做Province的报表参数,并将它附加到dsProvience数据集中。这个的做法和Country 参数的做法一样。Province 报表参数屏幕如下图所示。

 

因为我们已经做了接近一半的报表工作,所以我们该做个简单测试了,点击“preview”标签。你可以看到当你改变国家时省份列表也跟着改变了。例如,当国家是Australia和Germany时会看到下面两个图片。

 

多值参数

在配置了国家和省参数之后,现在大家要配置城市参数。城市数据没有主表。我们将使用Person.[Address]表来获得一个城市列表作为工作区。因为城市取决于所选的省,所以我们需要使用@Province 参数来获得城市列表。下面是城市数据集dsCity的截屏。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/22481.html

分享给朋友:

“在SQL Server报表服务中使用报表参数(1)” 的相关文章

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

上帝不止一个 更多Windows7 快捷模式.

上帝不止一个 更多Windows7 快捷模式.

国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

Skylake平台不能通过USB接口装windows 7系统

Skylake平台不能通过USB接口装windows 7系统

Intel会在2015年推出Broadwell、Skylake两代14nm处理器,前者可以使用9系芯片组,Skylake升级到了LGA1151插槽,需要搭配新的100系列芯片组,但初期的Skylake-S又不能超倍频,所以今年Q2季度开始会很混杂。Skylake一代会支持DDR4,100系列芯片组升...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...