SQL SERVER 2008 SSRS之报表开发手册_第1页
SQL SERVER 2008 SSRS之报表开发手册_第2页
SQL SERVER 2008 SSRS之报表开发手册_第3页
SQL SERVER 2008 SSRS之报表开发手册_第4页
SQL SERVER 2008 SSRS之报表开发手册_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SSRS 使用手册 -天善智能 QQ:744711023天善智能采用循环开课的形式,参加一期培训,其他的培训都可免费参加。详情请参看: Reporting Services报表开发手册1 Reporting Services简介 MicrosoftSQL Server 2008 Reporting Services (SSRS) 提供了各种现成可用的工具和服务,帮助您创建、部署和管理单位的报表,并提供了使您能扩展和自定义报表功能的编程功能。SQL Server 2008 Reporting Services (SSRS) 是基于服务器的报表平台,为各种数据源提供了完善的报表功能。Reporting Services 包含一整套可用于创建、管理和传送报表的工具以及允许开发人员在自定义应用程序中集成或扩展数据和报表处理的 API。Reporting Services 工具在 MicrosoftVisual Studio 环境中工作,并与 SQL Server 工具和组件完全集成。使用 Reporting Services,可以从关系数据源、多维数据源和基于 XML 的数据源创建交互式、表格式、图形式或自由格式的报表。可以按需发布报表、计划报表处理或者评估报表。Reporting Services 还允许用户基于预定义模型创建即席报表,并且允许通过交互方式浏览模型中的数据。您可以选择多种查看格式、将报表导出到其他应用程序以及订阅已发布的报表。您创建的报表可以通过基于 Web 的连接进行查看,也可以作为 Microsoft Windows 应用程序或 SharePoint 站点的一部分进行查看。Reporting Services 为您获取业务数据提供了一把钥匙。2 Reporting Services安装和配置Reporting Services的安装和配置,涉及服务帐户,WEB 服务URL ,执行帐户,密钥等的配置2.1 Reporting Services安装l 首先进入的是SQL SERVER的安装中心,比起SQL Server2005更让人一目了然。如图l 选择 “安装”选项卡中的“全新SQL Server独立安装或向现有安装添加功能”l 经过一系列的检查过程以后,将进入下图的“功能选择”步骤,在此我们需要勾选上 Reporting Services,建议全部勾上,因为在后续的课程中会用到诸多功能 l 经过SQL Server相关参数的配置以后,将会进入下图的“Reporting Services配置”步骤,这里我们选择“安装但不配置报表服务器。”如果选择“安装本机模式默认配置”的话,在报表服务器里面就不需要配置了。l 安装的过程中,涉及到Reporting Services的步骤已经介绍完,大家只需不停的点击“下一步”,进入安装过程就OK了。直到提示安装完成,安装完成以后,如果你可以通过开始菜单找到SQL Server Management Studio,并且进入如下图的界面,而且可以连接到服务器,那么恭喜你,你已成功安装SQL Server2008。l 大家进入SQL Server Management Studio后,如果安装的时候选择的是“安装本机模式默认配置”,那么通过对象资源管理器可以看到默认已经存在ReportServer,ReportServerTempDB两个数据库,否则需要在后续的“Reporting Services配置管理器”中创建该两个数据库。l 虽然SQL Server 2008 可以使用了,但是Reporting Services未必可用,大家可记得在安装过程中“Reporting Services配置”步骤,我们选择的是“安装但不配置报表服务器”。所以还存在配置的过程,具体请看Reporting Services配置过程。如果选择“安装本机模式默认配置”的话,在报表服务器里面就不需要配置这个步骤了。2.2 Reporting Services配置l 首先通过“开始”-“Microsoft SQL Server 2008”-“配置工具”-“Reporting Services配置管理器”进入配置界面。l 进入配置管理器并连接到报表服务器的实例,如下图:l 大家可以看到左边的选项卡都是灰色的,因为默认报表服务器状态为“停止”。所以我们要启用它,启动以后,选项卡为可用状态,并且可见报表服务器状态为“已启动”。如图:2.2.1 “服务账户”选项卡l 点击“服务账户”选项卡将进入如下界面:报表服务器的服务账户可以设置成Windows 用户账户 或域账户,这里初始的用户为安装时选择的用户,比如前面安装步骤中选择的是Local System 用户,所以这里初始账户即为Local System。在内置账户的下拉列表中还存在如下账户:NetworkService,LocalService,这些都是Windows自动的内置账户,可以根据自己的需要设置不同的账户,至于每个账户具有哪些权限,大家可以查阅MSDN 的相关文档说明。l 在此我们设置服务账户为域账户,这样便于管理和监控。如下图:同时注意域用户的密码要设置成永远不过期,不然密码过期了,Reporting Services将无法运行。l 点击“应用”提示备份加密密钥。选择保存路径并设置密码即可。该文件为报表服务器向数据库中存储敏感数据时使用的密钥。当更改服务账户,变更报表服务器,或需要多个报表服务器共享报表服务器数据库时都需要还原该文件。至于报表服务器是如何使用密钥加密的,将在后续章节介绍,在这里只需要知道存在这样的文件即可。2.2.2 “Web服务”选项卡l “Web服务URL”,这个应该是最直观的,也是我们以后部署报表的所在地址。先看一下配置界面: l 报表服务器的默认虚拟目录为:ReportServer,你可以任意修改该目录,但要保证IIS中不存在相同的名称。IP地址一栏,你可以看到下拉列表中有: l 所有已分配的:可以通过分配给该机器的所有IP访问报表服务器。 l 所有未分配的:未被其他的应用程序处理的所有请求,都会被报表服务器所接受,很容易造成和其他程序的冲突。所以避免使用。l :1 是IPV6格式的地址。l 本地访问。l 端口也可以设置,但是得避免冲突。SSL证书如果有,可以设置。SSL端口默认为:443。报表服务器的URL不仅可以这么灵活的设置,而且可以设置多个URL。可以点击“高级”添加多个URL,如图:l 可见Web服务URL可以设置成如下格式:l http:/think-pc/ReportServerl http:/think-pc/ReportServerKPIl http:/think-pc:8086/ReportServerKPIl http:/IP地址/ReportServerl http:/域名/ReportServer 2.2.3 “数据库”选项卡l “数据库”选项卡,指的是报表服务器的数据库,在此新建及更改报表服务器数据库,如果在安装时选择“安装但不配置”,这里需要新建数据库。步骤如下:l 点击上图中的“更改数据库”将出现下面的界面l 选择“创建新的报表服务器数据库”,点击下一步以当前用户登录服务器。l 下一步进入报表服务器数据库名称设置,可以设置成ReportServer,临时数据库会同时创建。报表服务器模式这里选择本机模式l 点击“下一步”进入凭证设置界面,凭证是报表服务器连接数据库的通行证。这里可以选择“windows”凭证,“SQLSERVER 凭证”,以及我们前面建立的“服务账户”,这里选择服务凭证。l 一直点击“下一步”就可以创建报表服务器数据库。虽然在创建数据库时选择了凭证,但这也不是固定的,我们也可以通过“更改凭证”,重新选择凭证。2.2.4 “报表管理器URL”选项卡l 报表管理器URL的设置比起报表服务器URL的设置更简单,界面如下图,大家可以参考前面的“报表服务器URL”设置相关的内容。 2.2.5 “电子邮件”选项卡l “电子邮件设置”的界面如下 l 在此可以设置SMTP服务器地址及发件人地址,SMTP服务器可以配置本地SMTP服务及远程SMTP服务。不过设置远程SMTP服务需要配合RSreportserver.config 文件设置。可以用来通过电子邮件的方式分发及订阅报表,事件通知等。如果你只通过文件共享的方式来分发,不配置也可以。 2.2.6 “执行账户”选项卡l “执行账户”的设置界面如下: l 这里的“执行账户”,大家可以看上面的说明:指定此账户可以启用不要求凭据的报表数据源,或连接到存储报表中所用的外部图像的远程服务器。l “服务账户”的说明:指定要运行该报表服务器的内置账户或Windows域用户账户。如下图 l 举个例子:如果一个用户请求报表,那么报表服务器会先到报表服务器数据库获取相关设置内容,数据源等信息,然后再到外部数据库获取报表所需数据,如果报表上需要访问图像文件,那么报表服务器将默认使用“执行账户”也可以访问外部数据,但需要设置数据源为“无需凭证”。不过不建议用执行账户访问外部数据。2.2.7 “加密密钥”选项卡l 这个我们在前面创建“服务账户”已经接触了。那里备份的密钥其实和这里是相同的文件,只是在此选项卡中,针对密钥的操作有更多的功能。见下图:l 在此可以针对密钥做备份,还原,更改,删除等操作。l 备份密钥不用细说,更改服务账户,迁移报表服务器等都要用到。备份文件最好和报表服务器分开存放。当然有备份就有还原,还原时选择备份文件,填入密码,如果报表服务器数据库正常,密钥正确,将可以还原成功。报表服务器将可以访问到报表数据库。l “更改”也就是重新通过WINDOWS的加密服务创建新版本的密钥。通常在如下情况需要重新更改,当你的报表服务器数据库有部正常的访问,如果投入生产的报表服务器也可以定期的更新密钥,防止别人恶意破解。不过更改密钥,可能会因为报表服务器数据库存在大量数据,所以花费很久的时间。l “删除”密钥,不到万不得已不要操作,因为删除了密钥报表服务器数据库中的敏感数据都需要重新手工建立。比如订阅,数据源等。2.2.8 “扩展部署”选项卡l “扩展部署”选项卡界面如下:也就是多个报表服务器连接一个公共的报表服务器数据库。2.2.9 验证配置l OK,到此为止,SQL Server 2008 Reporting Services配置相关的内容已经叙述完了,经过上面的一步步配置后,我们需要来检查一下配置报表管理器及报表服务器是否可用。l 打开IE浏览器,输入上面我们配置的报表管理器URL,上面我们配置的地址为:http:/think-pc/Reports,出现如下图的界面的登录窗口,我们用有权限访问的用户登录进去即可:l 登入以后出现如下界面,证明可以正常访问了,你可以在“站点设置”,或“属性”选项卡为需要访问的用户分配权限:l 现在你可以来熟悉一下报表管理器的使用了,我们在以后得章节中也会来介绍。l 下面我们来访问一下,报表服务器地址为:http:/think-pc/ReportServer,界面如下:l OK,访问成功。以后我们的开发的报表项目可都是发布到这里,供用户访问的。3 新建报表项目,数据源,新建报表及Tablix 控件的介绍和应用主要介绍如何新建报表项目,数据源,及新建报表,重点介绍Tablix 控件的使用,Tablix 控件的功能在Reporting Services 2008中有了长足的改进,Tablix 结合了表和矩阵数据区的功能,可以合并多个列组合和行组合。能够同时支持动态行和动态列。静态列和动态列一起使用。3.1 新建项目l 首先打开“开始”-“Microsoft SQL Server 2008”-“SQL Server Business Intelligence Development Studio”,这是我们开发报表的主要工具,见下图:l 打开的开发界面如下:l 和一般的开发工具没什么区别,上面的是菜单和工具栏,左边工具箱,右边资源管理器,下图是状态及结果栏。大家在学习的过程中会慢慢的熟悉它。l 下面让我们来看看如何新建一个报表项目。l 首先从“文件”菜单-“新建”-“新建项目”出现新建项目界面,如下图:l 我们选择报表服务项目,然后填写项目名称和解决方案,选择项目的存放位置。点击“确定”后,我们可以在“资源管理器”窗口看到项目已经创建成功,如下图:l 同时我们来看一下存放的目录l 我们新建项目时,选择的存放位置为:C:Documents and Settingsdell桌面BSRDCFrameWork,并且勾选了“创建解决方案的目录”,所以第一层BSERPRDCSSRSPro目录下存放着解决方案,第二层BSERPRDCSSRS才为报表项目的文件夹。如图:l 在这里提醒大家的,为了方便管理,可以在同一个解决方案下添加多个报表项目,比如:为了报表分类管理,可以把员工的报表和公司的报表放在同一个解决方案下的不同报表项目中。l 如果你已存在了解决方案,那么新建报表项目的时候,会出现如下图,在解决方案一栏,提示是“新建解决方案”还是“添入解决方案”。3.2 新建数据源l OK,项目的新建完成了,我们来看看如何新建数据源,这里以AdventureWorks示例数据库为例,后面的实例也依赖于该数据库。如果对AdventureWorks不了解的,可以参考如下地址中的数据字典。/zh-cn/library/ms124438(v=SQL.100).aspx。l 我们右键“资源管理器”中的“共享数据源”,选择新建数据源。如图:l 出现如下新建界面:l 在“常规”选项卡中,填入数据源名称。选择类型为“Microsoft SQL Server”,也可以选择 Microsoft SQL Server Analysis Services,Oracle,XML等数据源。这里我们以“Microsoft SQL Server”为例。l 点击“编辑”按钮进入如下界面,编写连接字符串。l 选择服务器名,登录方式及数据库,然后“测试连接”是否成功。我们这里以 demo用户连接。也可以在“高级”中设置其他属性,比如连接池数量,timeout等。l “凭据”选项卡里的内容和上图中的登录方式是一个意思。都是以什么样的身份连接到数据库。在连接属性中设置好了,也可以在“凭据”选项卡修改登录方式。凭据的设置界面如下图。l 凭据可以设置为:windows身份验证,指定用户等。如果设置凭据提示,那么运行报表时,将提示输入用户名及密码,显示的提示内容为这里设置的内容3.3 新建报表l 报表项目建好了,共享数据源我们也建好了,那么下面让我们以一个实例来学学习一下如何新建报表及使用基础控件。首先来看一下我们需要实现的报表:l 该报表上包括“页眉,主体和页脚”,用到“文本框”,“线条”,“表格”以及页码的设置。该报表存在一个“CategoryName” 参数。当输入 CategoryName参数,报表将显示该分类的子类。l 看了效果图后,让我们自己动手完成吧!首先新建报表,右键报表文件夹,添加-新建项 如图:l 进入新建报表界面,在模板中我们选择报表,名称默认为Report1.rdl。点击添加。我们可以看到在“资源管理器”下的文件夹下已经添加了“Report1.rdl”文件。当然也可以通过“报表向导”根据提示一步步来完成。不过如果要设置复杂的无规律的报表,向导将无法完成。l 我们双击该文件,将在设计区出现空白的设计界面。如图:l 我们先来设置报表的属性。先把我们想要的框架画出来。右键设计区域的空白处。将弹出如下图的菜单l 选择报表属性,进入属性界面:l 在此我们设置报表适应A4纸,我们把边距都设置成1cm。点击“确定”完成设置。该操作也可以通过右边的属性栏来设置。如图:l 那么如何添加页眉和页脚呢?其实很简单,通过同样方式,右键设计区域的空白处添加页眉和页脚。l 下面我们通过属性窗口设置主体的宽和高。l 本例中设置为宽:17CM,高:23.7CM。通过同样的方式设置页眉和页脚的高度为2CM。l 注意:这里设置的总高度和总宽度,不要超出纸张的高度和宽度,不然打印的时候会多出空白页。如果存在空白页,可以设置报表主体的宽和高略微小于纸张的宽和高。l OK,前面这些准备工作也做的差不多了。3.3.1 “文本框”使用l 首先从“工具栏”拖入“文本框”控件,用于存放标题。调整文本框的长度以及位置。在文本框内输入“产品分类列表”,字体要设置成中文字体,不然会乱码。l 用同样方法在拖入一个“文本框”控件,调整文本框的长度以及位置,在文本框内输入“子类列表”,同时拖入“线条”控件,放在该文本框下作为分割线。也可以通过设置文本框的下边框显示,来代替线条。l 初步设置如下图:3.3.2 添加“Tablix”控件l 下面我们来添加“表”控件。从工具栏拖入表格时,因为表格需要绑定数据集,所以会提示设置报表的数据源属性。如下图:在此我们使用“共享数据源”,在下拉列表中选择我们开始建立的“AdventureWorks”共享数据源。也可以通过“嵌入连接”来设置独立数据源。那么只有该报表可以使用。其他报表将不可以访问该数据源。设置方式和共享数据源的设置相同。l 在此设置连接名称为:“AW”,名称可以任意设置。l 点击下一步将进入“查询设计器”,在此设置查询语句,如图。l 通过上面的功能按钮及设计窗口,可以很容易的设计查询语句,我们也可以在数据库的“查询器”中设计好语句粘贴到这里。不过如果直接粘贴到查询设计器中,我们的SQL语句会被重新格式化。l 如果不想被改变编写格式,我们可以点击“编辑为文本”,然后再粘贴。将保持我们原来的格式。如图:l 点击“执行”,我们看到的结果和在数据库的查询器重的结果相同。点击“确定”后,我们可以在“报表数据”管理器重看到我们新建了数据集DataSet1。l 我们可以双击数据集的名称来修改它的属性。我们重新命名数据集名称为:dsSubCategory,SQL语句中的查询字段,参数会自动添加到“字段”和“参数”选项卡。这里也可以设置其他的一些属性,比如排序规则,对查询结果进行筛选等等。大家可以试着用。如图:l 修改DataSet 的名称,我们同时需要修改表格绑定的DataSet名称。同时大家应该可以看到“查询类型”一项,这里可以选择文本还是存储过程,也就说你可以把SQL查询语句写成存储过程,在报表中调用。l 下图为设置Tablix的数据集的属性窗口:l 数据集的属性设置好了后,我们来把数据集的数据放到表格的具体位置。l 具体方法为:拖到数据集的字段到表格的列中即可。相应的列标题也会填上字段的名称,您可以自己修改成想要的名称。如果不通过拖到来添加,也可以通过表格中的文本框的表达式来设置。方法多多,不在阐述。设计好的界面如图:l 报表的主体已经设计好了,那么页眉和页脚设计也很简单,“页眉”我们按照前面的方法,拖入文本框和线条做相应的调整就OK了。l 页脚的页码,我们可以从“内置字段”拖入页码也就OK.如图:l 终于设计完了,让我们来看看效果。点击“预览”。输入参数值“bikes”,效果如图:l 我们可以通过查看器上的导出功能导出文件。支持的格式如图3.4 Tablix控件介绍l 经过前面的基础学习,我们已对Tablix有了初步的了解,下面我们来具体的学习一下Tablix的分组汇总等一些复杂的功能。先介绍一下Tablix主要组成部分。Tablix包含:页眉,数据行,数据列,页尾,行组,列组。当我们从工具栏拖入设计区时,应该如下图 :l 可以看到页眉杭及数据行,我们可以通过右键页眉行来添加多条页眉。如图:l 我们可以通过如上方法,实现如下效果,把上面的一行页眉“合并格式”,用来填入Title,这种方式经常使用。l 也可以通过同样操作来添加行组及列组。不过是右键“单元格”:如下图:上方相邻,下方相邻指组放在数据杭的上方还是下方。3.5 Tablix实例(一)l 上面的基本操作学会了,我们学习一下嵌入式分组。l 我们将要实现的报表如下图,下面的实例我们将用到Tablix行组及实现由用户交换控制数据的显示。l 上图中可见首先对详细数据按订单日期分组并汇总出“数量”,“总金额”,再按订单分组详细数据并汇总出每个订单的“数量”,“总金额”。当用户点击前面的+图标,将逐层展开明细。l 然后来看看设计界面,从设计界面可看到这里包含两个嵌套分组。l 通过下图的“行组”窗口可以看到各个分组之间的关系,OrderDate分组包含OrderId分组,OrderId包含明细数据。l 下面我们来一步一步实现它,首先按照前面学习的方式,建立数据集,拖入Tablix控件并绑定数据库。l 数据集的SQL脚本如下:l 初步工作完成后,设计界面应该如下图:有三列Product Name,Order Qty,Line Total。我们点击数据行来添加“父组”。l 点击添加“父组”后,弹出如下窗口:设置分组依据,勾选添加组头。l 点击“确定”后,应该是如下界面l 我们在Order Qty,Line Total做汇总操作。l OK,第一层的分组已经设置好了,我们在做按OrderDate分组。点击“SalesOrderNumber”分组框。弹出如下界面:l 选择“父组”进入设置界面:设置分组依据为:OrderDate,添加组头。l 设置好了分组后,同样做汇总操作,我们在这里在添加一个页脚来汇总所以的数据级金额。设置了两层嵌套分组的他Tablix,如下图:l 下面我们设置每层的显示依赖于父组层。首先设置详细数据依赖于Order Group,右键数据行,在菜单中点击“行可见性”,如图:l 进入设置界面l 我们设置数据行初始运行时为“隐藏”。勾选“可以通过此报表项切换显示”。选择报表项为:TxtOrderGroup,该项为按订单的分组项,这里名称可以自行修改:修改方式如下图:l 点击分组项,文本框属性,设置名称即可。OrderDate 分组项也可以同样设置。l 第一层的控制设置好厚,在设置Order Group 的显示依赖于Date Group。如下图:l 这地方要把控制设置在分组项上,不能单纯设置在组头上。不然达不到效果。所以这里应该选择“组属性”进入设置。l 和上面的设置相同,设置隐藏,通过报表项切换。OK,设置完了,预览看看效果如何。3.6 Tablix实例(二)l 下面给大家带来一个综合性德实例应用。该实例包含“静态列,行组,列组”的结合使用。l 该报表实现的功能是当输入开始时间,结束时间,将汇总出该区间内,每个客户每年的订单金额,及每月的金额,及详细的订单金额。l 看看效果:l 上图中的报表是根据输入的时间区间生成,可以很容易的知道每个客户每一年的订单金额。我们可以点击年份前的+,展开查看每个月的金额。如图:l 还可以点击CustomerId前的+展开该客户在该段时间内德每条订单的具体金额。如图:l 我先来看下设计界面l 通过上图可以看到我们设置了行组(Customer ID),列祖(Omonth,Oyear),及静态列(Sales Order Number).l 下面我们来一步一步的实现它.l 数据集如下:l 下面把Sales Order Number填充到“Tablix”,如图:l 你可以从数据集直接拖入相应的列中,也可以点击文本框边上的小图标来选择字段。或直接打开表达式窗口来编辑。方法很多。这里需要填充该字段,我们把多余的列删。并添加“行组”,如下图:l 选择“父组”,在弹出的窗口中设置参数如下图:l 点击“确认”后,应该如下图:列标头可以自行修改。l 同时修改分组项文本框的名称,我们需要通过该报表项来控制订单的显示。如图:l 弹出如下窗口:在此设置名称为 :Gcustomerl 设置好以后,再来设置通过“Gcustomer”报表项来控制数据行的显示,如下图,右键数据行,弹出快捷菜单。选择“行可见性”。l 弹出设置窗口l 点击“确定”后,你可以先预览一下,看是否可以控制隐藏,显示。只不过现在看到的是半成品。我们继续向下设置:下面应该设置动态列了,我们希望动态列显示在“Sales Order Number”列的右边。所以右键“Sales Order Number”列的文本框。弹出如下快捷菜单。l 我们选择列组的“右侧相邻”l 选择月份作为分组依据,点击确定后,多出一列,我们填充上相应的值,在列标题绑定Omonth字段,详细信息绑定SubTotal,Customer ID分组对SubTotal,值进行汇总。填充后如下图:l 下面再对Omonth列组添加一个父组年份。右键动态列从菜单中选择“添加组”-“父组”。l 进入设置窗口:设置分组依据为Oyearl 经过如上设置,Tablix应该如下图:l 我们再来设置Omonth组受控于父组的报表项。我们双击“列组”窗口中的Gmonth列组,然后在弹出的窗口中设置可见性。l 设置窗口如下:可以先设置好父组的报表项,然后在这里选择。l OK,设置工作已完成了,我们对字体及对齐方式做调整,让它看起来更美观,最终如下图:l 点击“预览”,看看效果吧。l 我们前面看到的效果完全一样。l 本篇就讲到这里,大家一定要熟悉运用Tablix,该控件在日常工作中经常用到,特别2008中对该控件的功能增强后,完全可以替代矩阵控件。如果想把 Tablix控件当矩阵来用,只需用删除详细数据,保留汇总数据,得到的结果将和矩阵相同。4 矩阵,矩形区块,列表,子报表等控件的使用列表:用于创建自由格式的报表布局。矩形:可以用来放置其他报表项的容器。子报表:子报表可以引用独立的报表,或嵌入主报表中的报表。并且可以定义子报表的运行参数。图像:可以引用外部图像,嵌入图像或数据库内的图像。4.1 “表控件”内容补充l 对表控件一些补充说明:下图是上篇中我们的实例(一)的效果l 如何让Order Date默认是由小到大排序的,我们如何让用户来控制呢?l OK,让我们来学习一下,其实这很简单,也是我们在上篇中没有介绍的功能。首先我们还是来看一下如何设置:l 右键Order Date 的列标题,在菜单中选择“文本框属性”。进入设置界面:l 我们选择“交互式排序”选项卡,然后勾选“对此文本框启用交互式排序”,选择我们需要排序的组,再选择排序依据。如果想把该规则应用到其他地方,可以勾选“同样将次排序应用于以下位置中的其他组合数据区域”。我们点击“确定”来看下效果。l 大家可以看到在Order Date多出了排序按钮。我们点击试试:l 可以看到订单时间已经从小到大,变成了从大到小。当然你也可以把排序功能应用于其他的列,或分组,详细数据等。l 我们再介绍一下“文本框属性”窗口的“操作”选项卡。如图l 在此可以为该文本框启用超链接功能,可以转到报表,书签,URL。应用场景比如在订单ID上加入超链接,点击跳转到明细报表。我们在后面的章节中会用到这些功能,大家可以先熟悉一下。至于其他的选项卡(数字,对齐,字体,边框,填充),大家可以自己熟悉。l 下面再介绍一个组属性l “分页符”选项卡:可以设置分页符放在组的开头还是结尾。l 组的排序依据默认和分组依据相同,当然你可以在此自己定义规则,可见性我们在上一篇中已经介绍过。在看看筛选器:l 若要细化组中的数据,可以创建筛选器表达式。报表将在应用报表数据集,数据区域和父组的筛选器之后,才应用组筛选器。“变量”选项卡可以在此定义一些变量,供自组使用。l “Advanced”选项卡可以创建递归结构的组结构。l 若要在Tablix数据区域中创建一个递归层次结构,必须将组表达式设置为指定子数据的字段,并将该组的Parent属性设置为指定父数据的字段。数据集的数据要符合递归的要求,不要出现死循环。4.2 “矩阵”的使用l 下面让我们继续学习新知识,我们先学习矩阵使用。上边有了对“表”控件的理解,矩阵的使用学起将会很轻松l 下面我们先来学习一下矩阵的基本功能。首先新建报表,新建数据集:SQL脚本如下:l 然后在工作区拖入矩阵。同时把数据集的 SalesTerritoryGroup字段拖入列中,把ProductCategoryName填充到行,在把LineTotal填充到数据区,如图:l 上图中计算出了每种类型产品在各个地区的销售额。可是这是老板又有新的需求,需要既看到大的分类销售额,同时看到子分类的销售额。那我们该如何实现呢?OK,继续看。l 还记得我们在上一篇中,总是在添加“父组”,一直想点击“子组”,可一直没用上,现在就用上了。点击“子组”进入设置:设置方式几乎相同。l 点击确定在来看看工作区的矩阵发生了什么变化l 已经按子类分组了,可是老板的要求是,既可以看到子类的销售额又可以看到大类的销售额。那怎么办?我们只需要把大类的分组加上组头或组尾,然后汇总就可以了。我们这里添加组尾,来看看怎么添加。l 右键Product Category Name组,在菜单中选择,插入行-“组内部-下方”。然后可以看到工作区的变化:l 来看看效果l OK,符合老板的要求,但老板说:“我还想知道每个地区的总销售额及每个分类的总销售额。”l 右键Product Category Name组,在菜单中选择,插入行-“组外部-下方”来为每个地区汇总所有分类。l 右键SalesTerritoryGroup组,在菜单中选择,插入列-“组外部-右方”来为每个分类汇总所有地区。l 添加后的设计界面如下l 看看效果l 开发完成后,老板又提出三条需求:l 1.计算出北美地区的每个国家的销售额。l 2.计算出每种分类,子类,每年的销售额。l 3.计算出每个子类在总类中占的销售百分比。l SQL脚本修改如下,在应用中可以提供给用户自己选择,这里为了方便,在此写固定值。l 再来添加子组:右键SalesTerritoryGroup组,在菜单中选择,添加组-“子组”。l 在弹出的设置窗口,选择CountryRegionCode作为分组依据。这样第一个需求就完成了。l 下面再来完成“计算出每种分类,子类,每年的销售额”需求。我们需要添加列组,我们希望显示在地区信息的右边,所有在下图中,我们选择“右侧相邻”。l 在设置窗口中,我们设置Oyear为分组依据,填充上数据(Sum(LineTotal)。这时我们可以看到工作区的矩阵已经变化成如下:l 运行一下看看效果l 基本上符合老板的要求了,但是年份列,和Total希望垂直居中,所以这里我们需要“合并单元”。l 合并后的,这样就达到预期的效果了。l 下面再来看看最后一个需求怎么完成。我们也需要添加一个组外列,来存放每个子类占该类的比例。所有如下图插入列。l 然后我们填入具体的表达式:l 看看效果如下l 基本功能完成了,不过百分比显示是小数,需要设置一下:l 在文本框属性中,我们设置成数字,百分比就OK 了。l 再来看看效果:4.3 “列表,矩形,图像”的综合使用l “列表”和“矩形”的综合使用。先简单的来理解一下两者:列表:用于创建与网页上的表单类型的自由格式布局。矩形:用来设置其他报表项的容器。l 首先新建报表,进行数据集,这里用到两个数据集,一个订单信息,一个订单明细信息。l SQL脚本如下:两个数据集的参数都为:SalesOrderNumber4.3.1 “列表”使用l 建好数据集后,我们把List控件拖入工作区。调整适当的大小。绑定List的数据集为OrderInfo。如图:l 初步工作完成后,我们来摆放List中需要的元素,按照前面章节学习的方法,拖入文本框作为标题。l 如图:l 通过右键文本框,在弹出的菜单中选择“表达式”。我们希望标题显示为“订单号”+订单信息字样,填写表达式内容为:=Fileds!SalesOrderNumber.Value+“订单信息”。l 然后按照相同的方式来完成,订单日期,发货日期,消费情况的设置。设置好后工作区的变化如下:4.3.2 “矩形”使用l 下面我们来设置订单的相关地址,我们希望地址显示在一个区块内,并且在地址周围添加边框。所以我们需要拖入“矩形”控件。并设置显示边框。l 我们在矩形区块放入文本框来显示地址内容。如下图:l List中的内容设置完了,下一步看看如何添加图片4.3.3 “图像”使用l 首先从工具栏拖入“图片”控件到相应位置,会弹出如下窗口。l 在此窗口,可以设置图像名称,大小,可见性,边框,操作等。l 图像源:l “外部”:是对存储在Web服务器中的图像的URL引用。l “嵌入”:对嵌入的图像数据引用。l “数据库”:是对数据库中的二进制图像数据引用。l Reporting Services支持.bmp,.jpeg,.gif和.png文件。l 在此我们选择“嵌入”,点击导入按钮来导入图片。调整图片的位置及大小。l 可见如下效果:l 这样,List才算设置完成。下面我们在List的下面添加一个“表”控件来显示该订单的所买商品信息。添加“表”控件,绑定数据源为:OrderDetail,并填充字段。最终设计的效果如下:l 点击“预览”,填入订单号来看一下效果是否符合老板的要求l 老板又有新需求:l 1.需要可以从所有订单点击进去查看明细。l 2.看到每个商品的图片.l 修改OrderDetail的数据集如下:l 在OrderDetail报表的订单明细中增加一列来放置商品的图片。如下图:l 从工具栏拖入图像控件到该列将出现如下图的图像属性窗口:l 我们设置“图像源”为数据库,字段为:ThumbNailPhoto,MIME,类型选择为:Image/jpeg。在“大小”选项卡设置图片为“原始大小”。l 点击确定来看下效果:l 可见图片已经从数据库里读出来。这里也可以在列中先放入“矩形”控件再放入图像,达到的效果一样。4.4 为报表添加链接l 下面我们来做一张所有订单的列表,可以点击订单ID查看详细信息。l 新建一个报表名称为:Order的报表。数据集如下:l 我们在工作区拖入“表”控件,绑定数据集并填充数据。如下图:l 下面我们来为SalesOrderNumber添加链接跳转到我们前面完成的OrderDetail报表。右键订单号的文本框,在弹出的菜单中,选择文本框属性。l 在“操作”选项卡,我们设置启用超链接功能,并选择转到报表,在下拉列表中选择“OrderDetail”报表,并添加SalesOrderNumber 参数。同时在“字体”选项卡中设置颜色为“蓝色”,带下划线。l 点击“确定”,我们来看一下效果:l 当我们把鼠标放在“订单号”上将出现可点状。点击将跳转到明细表。l OK,但老板又有新需求。只想订单的明细导出在一个文件中。通过书签可以查看订单明细。4.5 “子报表”l 下面来介绍一下“子报表”。l 首先看一下“子报表”的定义:l 子报表:子报表显示保存到父报表的报表服务器中的报表。子报表可以引用完全格式化的独立报表,或嵌入主报表中的报表。定义子报表时,还可以定义用于筛选子报表数据的参数。l 下面我们来修改Order报表,完成老板的需求。l 从报表中删除“表”控件,然后从工具栏拖入List控件,调整大小及位置。绑定数据集Order到列表控件。然后再从工具栏拖入子报表到List中。如下图:l 大家可见 List中放了一个子报表。我们来设置子报表的属性。l 右键子报表在弹出的菜单中,选择“子报表属性”。l 我们选择OrderDetail报表作为子报表。然后在选择“参数”选项卡,在此设置子报表的参数值。l 子报表的运行参数为:SalesOrderNumberl 设置好后,工作区的界面如下:l 下面我们来设置,让订单号以标签的方式显示。选择子报表控件,在属性窗口中设置“DocumentMapLabel”属性。设置值为:SalesOrderNumber 如图:l OK,一切就绪,来看看效果:l 上面我们使用了列表对订单进行了循环,也可以用表控件,达到的效果相同。l OK,终于完成老板的需求了5 柱状图,折线图,形状图,范围图的使用图表主要列,折线图,形状图,条形图,面积图,范围图,散点图,极坐标图。5.1 柱状图l 首先还是新建报表,数据集:DataSet脚本如下: l 这里为了方便演示,我们固定参数值。在实际应用中,可以让用户输入或选择。这里查询出北美地区各个国家每个季度的销售金额(你也可以直接从订单中取出SubTotal,不需要连接Detail表)。l 下面我们从“工具栏”拖入图表控件。在弹出的窗口中,我们选择“列”图表,如下图:在下图中我们可以看到不同的选项卡,从不同的选项卡可以创建不同的图表。 l 点击“确定”后,我们来看一下工作区。图表已经添加到工作区。调整到合适大小。 l 通过上图我们可以看到相应的提示信息。我们根据提示把数据集中的字段拖入相应的填充区。将LineTotal拖入图表上方的数据区。Oquarter放入序列区。CountryRegionCode放入类别区。如下图: l 其实这样我们已经把图表做好。可以先预览看看: l 没想到图表的制作如此简单吧。下面来看看如何修改相关的属性,整个图表是有很多图表块组成的,比如:图表标题,轴标题,轴(横向,纵向),序列。图表区,网格线等。我们来细细讲解他们属性。首先从图表标题开始: l 右击“图表标题栏”在弹出的菜单中,选择“标题属性”进入设置窗口: l 在此可以设置标题内容,标题的位置,以及通过左边的选项卡设置字体,边框,填充,操作等。大家可以试着设置相关的属性。如果只需要设置标题内容也可以双击“图表标题”进行修改即可。l 轴标题属性窗口: l 通过轴标题窗口可以设置标题内容,字体,对齐方式。同样可以通过双击来修改标题内容。纵向和横向标题的属性窗口相同。在此不在阐述。l “图例属性” 右键图例在弹出的菜单中,可以通过“显示图例标题”来控制标题的显示与隐藏。如下图: l 点击“图例属性”进入属性窗口: l 在此同样可以设置可见性,填充,边框,阴影及位置等。再来看看轴属性,在弹出的菜单中,可以通过“显示主要网格线”,“次要网格线”来控制图表区的参考线。“显示轴标题”控制标题的显示。“显示轴”来控制轴的显示。 l 进入属性窗口: l 在此可以设置轴刻度的相关属性及标签,轴等得属性,大家可以自己摸索着设置来查看具体的效果。纵轴和横轴的设置相同。图表区属性,右键图表区,在弹出的菜单中,可以通过“显示数据标签”来控制图表上的具体销售额的显示。通过“序列属性”设置列图的属性。还可以新增标题,图例,图表等。 l 我们选择图表区属性,进入属性窗口:(大家注意一下,图表属性,图表区属性两者的区别。图表区是图表的主要组成部分) l OK,通过上边的属性的了解,来看看我们最终的设置效果: l 对应的三维效果如下: l 下面我们来更改图表类型,来看看其他的呈现效果:l 右键图表区,在弹出的菜单中选择“更改图表类型”再弹出的窗口中,在“列”选项卡中我们选择“堆积柱形图”,效果如下: l 三维效果: l 选择:百分比堆积柱形图,将把每个国家四个季度按百分比输出,效果如下 l 三维效果: l 选择三维簇状柱形图: l 以上的各种效果,可以通过更改图表类型,在弹出的“选择图表类型”窗口变更,三维效果同时可以通过右键图表区,在弹出的菜单中选择“三维效果”来调整三维的相关属性,如下图: l 下面学习一个常用的知识点:当最大数据和最小数据相差很多时,这时会使刻度显示的模糊。我们可以启用刻度分割线来使高值和低值之间产生分隔线,提高刻度的可读性。我们右键纵轴,在弹出的菜单中选择“轴属性”。在如下图的属性窗口中勾选“启用刻度分隔线”。 l 同时我们可以通过“图表轴”属性来设置分割线的样式等。如下图: l 分隔线由图表根据数据域自动计算出位置,如果启用了刻度分隔线而没有显示,我们可以调节CollapsibleSpaceThreshold的值。我们来看一下启用了“刻度分隔线”后的图表效果。 l 以上情况将不支持刻度分割线。l 启用了三维效果的图表。l 已指定对数值轴。l 已显式设置值轴的最小值或最大值。l 图表类型为极坐标图,雷达图,饼图,圆环图,漏洞图,棱锥图或堆积图。l 现在又有另外一种情况,在图表区既显示销售额又显示纳税情况,那该怎么做呢?这时我们就会用到“辅助轴”。下面来看看辅助轴

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论