SQL Reporting Services实验.docx
- 文档编号:29754159
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:70
- 大小:495.44KB
SQL Reporting Services实验.docx
《SQL Reporting Services实验.docx》由会员分享,可在线阅读,更多相关《SQL Reporting Services实验.docx(70页珍藏版)》请在冰豆网上搜索。
SQLReportingServices实验
SQL2008ReportingServices实验
提示:
安装有AdventureWorks2008数据库的MicrosoftSQLServer2008。
必须先下载并安装SQLServer2008示例和示例数据库,才能对其进行查看或使用。
若要安装SQLServer的正式示例数据库,请访问http:
//www.CodeP
实验1:
创建基本表报表
按照本动手实验中的步骤来学习如何创建第一个报表。
本动手实验将向您演示如何使用报表设计器来创建数据源连接,定义简单查询并生成包含数据的布局。
实验2:
向报表添加参数
按照本动手实验中的步骤来学习添加控制报表外观和内容的参数。
实验3:
创建基本矩阵报表
按照本动手实验中的步骤学习如何创建包含矩阵的报表。
实验4:
向报表添加饼图
按照本动手实验中的步骤学习如何向报表添加饼图。
实验5:
向报表添加条形图
按照本动手实验中的步骤学习如何向报表添加条形图。
实验6:
向报表添加KPI
按照本动手实验中的步骤学习如何向报表添加关键绩效指标(KPI)。
这包括图像或仪表数据区域。
实验7:
使用reportbuilder2.0创建报表
实验8(可选):
使用VC#应用程序访问报表服务器
动手实验1:
创建基本表报表(共六个课练习)
第1课:
创建报表服务器项目(ReportingServices)
第2课:
指定连接信息(ReportingServices)
第3课:
为表报表定义数据集(ReportingServices)
第4课:
向报表添加表(ReportingServices)
第5课:
设置报表格式(ReportingServices)
第6课:
添加分组和总计(ReportingServices)
第1课:
创建报表服务器项目(ReportingServices)
创建报表服务器项目
1.单击“开始”,依次指向“程序”和MicrosoftSQLServer2008,然后单击BusinessIntelligenceDevelopmentStudio。
2.在“文件”菜单上,指向“新建”,再单击“项目”。
3.在“项目类型”列表中,单击“商业智能项目”。
4.在“模板”列表中,单击“报表服务器项目”。
5.在“名称”中,键入Tutorial。
6.单击“确定”以创建项目。
解决方案资源管理器中将显示Tutorial项目。
创建新的报表定义文件
1.在解决方案资源管理器中,右键单击“报表”,指向“添加”,再单击“新建项”。
注意:
如果“解决方案资源管理器”窗口不可见,请单击“视图”菜单中的“解决方案资源管理器”。
2.在“添加新项”对话框的“模板”下,单击“报表”。
3.在“名称”中,键入SalesOrders.rdl,再单击“添加”。
此时报表设计器将打开,并在“设计”视图中显示新的.rdl文件。
您已经成功创建了名为“Tutorial”的报表项目,并向该报表项目添加了报表定义(.rdl)文件。
接下来,您将指定要用于报表的数据源。
第2课:
指定连接信息(ReportingServices)
设置连接
1.在“报表数据”窗格中,单击“新建”,然后单击“数据源”。
注意:
如果“报表数据”窗格不可见,请单击“视图”菜单上的“报表数据”。
2.在“名称”中,键入AdventureWorks。
3.确保已选中“嵌入连接”。
4.在“类型”中,选择MicrosoftSQLServer。
5.在“连接字符串”中,键入以下内容:
Datasource=localhost;initialcatalog=AdventureWorks2008
6.该连接字符串假定BusinessIntelligenceDevelopmentStudio、报表服务器和AdventureWorks2008数据库都已安装在本地计算机中,并且您拥有登录AdventureWorks2008数据库的权限。
7.单击“确定”。
名为AdventureWorks的数据源即被添加到“报表数据”窗格中。
您已成功定义了到AdventureWorks示例数据库的连接
第3课:
为表报表定义数据集(ReportingServices)
定义数据源后,您需要定义数据集。
在ReportingServices中,您在报表中使用的数据包含在“数据集”中。
您将创建一个查询,用于从AdventureWorks2008数据库中检索销售订单信息。
为报表数据定义Transact-SQL查询
1.在“报表数据”窗格中,单击“新建”,然后单击“数据集”。
此时将打开“数据集属性”对话框。
2.在“名称”框中,键入AdventureWorksDataset。
3.确保数据源名称AdventureWorks位于“数据源”文本框中,并确保“查询类型”为“文本”。
4.将以下Transact-SQL查询键入(或复制并粘贴)到“查询”框中。
SELECT
soh.OrderDateAS[Date],
soh.SalesOrderNumberAS[Order],
pps.NameASSubcat,pp.NameasProduct,
SUM(sd.OrderQty)ASQty,
SUM(sd.LineTotal)ASLineTotal
FROMSales.SalesPersonsp
INNERJOINSales.SalesOrderHeaderASsoh
ONsp.BusinessEntityID=soh.SalesPersonID
INNERJOINSales.SalesOrderDetailASsd
ONsd.SalesOrderID=soh.SalesOrderID
INNERJOINProduction.ProductASpp
ONsd.ProductID=pp.ProductID
INNERJOINProduction.ProductSubcategoryASpps
ONpp.ProductSubcategoryID=pps.ProductSubcategoryID
INNERJOINProduction.ProductCategoryASppc
ONppc.ProductCategoryID=pps.ProductCategoryID
GROUPBYppc.Name,soh.OrderDate,soh.SalesOrderNumber,pps.Name,pp.Name,
soh.SalesPersonID
HAVINGppc.Name='Clothing'
5.(可选)单击“查询设计器”按钮。
查询将在基于文本的查询设计器中显示。
通过单击“编辑为文本”,可以切换到图形查询设计器。
通过单击查询设计器工具栏上的“运行”(!
)按钮来查看查询结果集。
单击“确定”退出查询设计器。
6.单击“确定”退出“数据集属性”对话框。
此时将在“报表数据”窗格中显示AdventureWorksDataset数据集字段。
第4课:
向报表添加表(ReportingServices)。
向报表布局中添加表数据区域和字段
1.在“工具箱”中,单击“表”,再单击设计图面。
报表设计器将在设计图面中心绘制一个具有三列的数据区域。
注意:
“工具箱”可能显示为“报表数据”窗格左侧的一个选项卡。
若要打开“工具箱”,请将指针移到“工具箱”选项卡上。
如果“工具箱”不可见,请单击“视图”菜单上的“工具箱”。
2.在“报表数据”窗格中,展开AdventureWorksDataset数据集以显示字段。
3.将Date字段从“报表数据”窗格拖到表的第一列中。
4.将Order字段从“报表数据”窗格拖到表的第二列中。
5.将Product字段从“报表数据”窗格拖到表的第三列中。
6.将Qty字段拖到第三列的右边缘,直到显示一个垂直光标且鼠标指针带有加号[+]为止。
释放鼠标按钮后,将为[Qty]创建第四列。
7.请以相同方式添加LineTotal字段,并创建第五列。
以下关系图显示已由下列字段填充的表数据区域:
Date、Order、Product、Qty和LineTotal。
预览报表
∙单击“预览”选项卡。
报表设计器将运行此报表,并将其显示在“预览”视图中。
下图显示了“预览”视图中的部分报表。
请注意,LineTotal列中货币的小数点后面有六个小数位,并且日期具有不必要的时间戳。
此格式问题将在下一课中进行修复。
注意:
您可以在预览报表前后保存报表项目。
在“文件”菜单上,单击“全部保存”。
第5课:
设置报表格式(ReportingServices)
将设置列标题以及日期和货币值的格式。
设置日期格式
默认情况下,Date字段显示日期和时间信息。
您可以设置其格式,使其只显示日期。
设置日期字段格式
1.单击“设计”选项卡。
2.右键单击带[Date]字段表达式的单元,然后单击“文本框属性”。
3.单击“数字”,然后在“类别”字段中,选择“日期”。
4.在“类型”框中,选择“2000-01-31”。
5.单击“确定”。
设置货币格式
LineTotal字段显示常规数字。
请设置其格式,以使其显示货币形式的数字。
设置货币字段格式
1.右键单击带有[LineTotal]字段表达式的单元,然后单击“文本框属性”。
2.单击“数字”,然后在“类别”字段中,选择“货币”。
3.如果区域设置为“英语(美国)”,则默认设置应为:
∙小数位数:
2
∙负数:
($12345.00)
∙符号:
$英语(美国)
4.选择“使用1000分隔符(,)”。
如果示例文本为$12,345.00,则说明您的设置是正确的。
5.单击“确定”。
更改文本样式和列宽
还可以更改标题行的格式设置,以使其与报表中的数据行区分开来。
最后,您将调整列的宽度。
设置标题行和表列的格式
1.单击表,以便在此表的上方和旁边显示列控点和行控点。
沿此表的上方和一侧显示的灰色条状物就是列控点和行控点。
2.指向列控点之间的行,使光标变为双箭头。
拖动列,调整到所需大小。
3.选择包含列标题标签的行,从“格式”菜单中,指向“字体”,然后单击“加粗”。
4.若要预览报表,请单击“预览”选项卡。
其外观应与下图相似:
第6课:
添加分组和总计(ReportingServices)
向报表中添加分组和总计以便组织和汇总数据。
在报表中对数据进行分组
1.单击“设计”选项卡。
2.从“报表数据”窗格将Date字段拖到“行组”窗格,并将其放置到名为Details的行上面。
请注意,行控点中现在有一个方括号,用于显示组。
表现在在垂直点线的两侧各有一个Date列。
3.从“报表数据”窗格将Order字段拖到“行组”窗格,并将其放置到Date下面和Details上面。
请注意,行控点中现在有两个方括号,用于显示两个组。
表现在还包含两个Order列。
4.删除两根线条右侧的原始Date和Order列。
这将删除该单个记录值,以便仅显示组值。
选择并右键单击两个列的列控点,然后单击“删除列”。
您可以重新设置列标题和日期的格式。
5.切换到“预览”选项卡以预览报表。
其外观应与下图类似:
向报表中添加总计
1.切换到“设计”视图。
2.右键单击包含[LineTotal]字段的数据区域单元,并单击“添加总计”。
这将添加一个带有每个订单的美元总金额的行。
3.右键单击包含[Qty]字段的单元,并单击“添加总计”。
这将向总计行添加每个订单的总数量。
4.在Sum[Qty]左侧的空单元中,键入标签“OrderTotal”。
5.可以向总计行添加背景色。
选择两个累加求和单元和标签单元。
6.在“格式”菜单上,单击“背景色”,并单击“浅灰色”。
向报表添加每日总计
1.右键单击Order单元,指向“添加总计”,并单击“晚于”。
这将添加一个包含每天的总量和美元总金额的新行,并在Order列中添加“Total”标签。
2.在相同单元中,在Total单词之前键入Daily单词,使其显示为DailyTotal。
3.选定DailyTotal单元、两个Sum单元及其之间的空单元。
4.在“格式”菜单上,单击“背景色”,并单击“橙色”。
向报表添加总计
1.右键单击Date单元,指向“添加总计”,并单击“晚于”。
这将添加一个包含整个报表的总量和美元总金额的新行,并在Date列中添加Total标签。
2.在相同单元中,在Total单词之前键入Grand单词,使其显示为GrandTotal。
3.选定GrandTotal单元、两个Sum单元及其之间的空单元。
4.在“格式”菜单上,单击“背景色”,并单击“浅蓝色”。
5.单击“预览”。
最后一页的外观应与下图相似:
这样,您就成功完成了对“创建基本表报表”动手实验的学习。
可以使用该基本表报表作为其他动手实验的基础。
动手实验2:
向报表添加参数
第1课:
添加按日期筛选报表的参数
本动手实验要求您已完成动手实验:
创建基本表报表。
打开现有报表服务器项目
1.单击“开始”,依次指向“所有程序”和MicrosoftSQLServer2008,单击BusinessIntelligenceDevelopmentStudio。
2.在“文件”菜单上,指向“打开”,再单击“项目/解决方案”。
3.导航到Tutorial.sln。
本动手实验是在动手实验:
创建基本表报表中创建的。
4.单击“确定”打开项目。
“动手实验”项目即在解决方案资源管理器中显示,并带有一个名为SalesOrders.rdl的报表。
注意如果解决方案资源管理器不可见,请单击“视图”菜单中的“解决方案资源管理器”。
将嵌入数据源转换为共享数据源
1.在“报表数据”窗格中,右键单击数据源AdventureWorks并选择“转换为共享数据源”。
名为AdventureWorks.rds的数据源即被添加到“解决方案资源管理器”中。
2.在“报表数据”窗格中,右键单击AdventureWorks数据源,并选择“数据源属性”。
3.在“名称”中,键入AdventureWorks_Ref。
4.单击“确定”。
替换现有数据集
1.在“报表数据”窗格中,右键单击数据集AdventureWorksDataset,然后单击“数据集属性”。
2.在“数据源”中,确保已选中AdventureWorks_Ref。
3.在“查询类型”中,确保已选中“文本”。
4.单击“查询设计器”按钮打开查询设计器。
5.用下列查询替换文本框中的文本。
SELECT
soh.OrderDateAS[Date],
soh.SalesOrderNumberAS[Order],
pps.NameASSubcat,pp.NameasProduct,
SUM(sd.OrderQty)ASQty,
SUM(sd.LineTotal)ASLineTotal
FROMSales.SalesPersonsp
INNERJOINSales.SalesOrderHeaderASsoh
ONsp.BusinessEntityID=soh.SalesPersonID
INNERJOINSales.SalesOrderDetailASsd
ONsd.SalesOrderID=soh.SalesOrderID
INNERJOINProduction.ProductASpp
ONsd.ProductID=pp.ProductID
INNERJOINProduction.ProductSubcategoryASpps
ONpp.ProductSubcategoryID=pps.ProductSubcategoryID
INNERJOINProduction.ProductCategoryASppc
ONppc.ProductCategoryID=pps.ProductCategoryID
GROUPBYppc.Name,soh.OrderDate,soh.SalesOrderNumber,
pps.Name,pp.Name,soh.SalesPersonID
HAVING(ppc.Name='Clothing'
AND(soh.OrderDateBETWEEN(@StartDate)AND(@EndDate)))
6.单击工具栏上的“运行”(!
)。
此时将打开“定义查询参数”对话框,提示您输入参数值。
7.提供以下两个值以查看筛选的结果集:
a.在“参数值”列中,为@StartDate输入值,例如2001-01-01。
b.在“参数值”列中,为@EndDate输入值,例如2003-01-01。
8.单击“确定”。
9.结果集显示2001至2002年期间筛选后的订单数据集。
10.单击两次“确定”。
“报表数据”窗格即用数据集字段进行填充。
另请注意将自动创建StartDate和EndDate两个报表参数,并显示在“参数”节点下面。
更改报表参数的数据类型和默认值
1.在“报表数据”窗格中,展开“参数”,并双击StartDate。
此时将打开“报表参数属性”对话框。
2.确保参数名称为StartDate,并且提示为“开始日期”。
3.在“数据类型”中,选择“日期/时间”。
4.单击“确定”。
5.在“报表数据”窗格中,双击EndDate。
验证名称和提示值。
6.在“数据类型”中,选择“日期/时间”。
7.单击“确定”。
8.单击“预览”。
StartDate和EndDate参数将分别随附一个日历控件显示在报表工具栏中。
参数的数据类型是Date/Time并且未定义可用值列表时,将自动显示日历控件。
如果定义了可用值列表,则改为显示一个值下拉列表。
9.提供以下两个参数值以运行报表:
a.在StartDate参数文本框中,输入日期2001-01-01。
b.在EndDate参数文本框中,输入日期2003-01-01。
10.单击“查看报表”。
报表将仅显示位于报表参数值范围中的数据。
为报表创建报表参数后,可以为这些参数添加默认值。
默认参数可以使报表自动运行;否则,用户必须输入参数值,报表才能运行。
为参数设置默认值
1.在“设计”视图的“报表数据”窗格中,展开“参数”,并双击StartDate。
此时将打开“报表参数属性”对话框。
2.单击“默认值”。
3.选择“指定值”选项。
此时将显示“添加”按钮和空的“值”网格。
4.单击“添加”。
空行即被添加到网格中。
5.单击“值”文本框,并删除默认文本(Null)。
6.键入2001-01-01。
单击“确定”。
7.在“报表设计”窗格中,双击EndDate。
8.单击“默认值”。
9.选择“指定值”选项。
10.单击“添加”。
11.键入2003-01-01。
单击“确定”。
12.单击“预览”。
由于为所有参数定义了默认值,因此报表会立即运行。
将新字段添加至查询以用于筛选
1.切换到“设计”视图。
2.右键单击数据集AdventureWorksDataset,并选择“数据集属性”。
打开查询设计器,并用以下新查询替换查询:
SELECT
soh.OrderDateAS[Date],DATENAME(weekday,soh.OrderDate)asWeekday,
soh.SalesOrderNumberAS[Order],
pps.NameASSubcat,pp.NameasProduct,
SUM(sd.OrderQty)ASQty,
SUM(sd.LineTotal)ASLineTotal
FROMSales.SalesPersonsp
INNERJOINSales.SalesOrderHeaderASsoh
ONsp.BusinessEntityID=soh.SalesPersonID
INNERJOINSales.SalesOrderDetailASsd
ONsd.SalesOrderID=soh.SalesOrderID
INNERJOINProduction.ProductASpp
ONsd.ProductID=pp.ProductID
INNERJOINProduction.ProductSubcategoryASpps
ONpp.ProductSubcategoryID=pps.ProductSubcategoryID
INNERJOINProduction.ProductCategoryASppc
ONppc.ProductCategoryID=pps.ProductCategoryID
GROUPBYppc.Name,soh.OrderDate,soh.SalesOrderNumber,
pps.Name,pp.Name,soh.SalesPersonID
HAVING(ppc.Name='Clothing'AND(soh.OrderDateBETWEEN(@StartDate)AND(@EndDate)))
3.单击“运行”(!
)。
“定义查询参数”对话框随即打开。
4.在“参数值”列中,为@StartDate输入值,例如20010101。
5.在“参数值”列中,为@EndDate输入值,例如20030101。
6.单击“确定”。
结果集中应该显示一个标有Weekday的新列。
7.单击两次“确定”。
在“报表数据”窗格中,确保含有Weekday字段。
(可选)设置要筛选的表数据中的日期的格式
1.单击“设计”选项卡。
2.右键单击带[Date]字段表达式的单元,然后单击“文本框属性”。
3.单击“数字”,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Reporting Services实验 Services 实验