SQLReport.docx

上传人:b****1 文档编号:23084553 上传时间:2023-04-30 格式:DOCX 页数:70 大小:495.36KB
下载 相关 举报
SQLReport.docx_第1页
第1页 / 共70页
SQLReport.docx_第2页
第2页 / 共70页
SQLReport.docx_第3页
第3页 / 共70页
SQLReport.docx_第4页
第4页 / 共70页
SQLReport.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

SQLReport.docx

《SQLReport.docx》由会员分享,可在线阅读,更多相关《SQLReport.docx(70页珍藏版)》请在冰豆网上搜索。

SQLReport.docx

SQLReport

SQL2008_Report_Services基础教程

提示:

安装有AdventureWorks2008数据库的MicrosoftSQLServer2008。

必须先下载并安装SQLServer2008示例和示例数据库,才能对其进行查看或使用。

实验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.单击“数字”,然后在“类别”字段中,选择“日期”。

4.在“类型”框中,选择“2000年1月31日,星期一”。

5.单击“确定”。

添加新报表参数

1.在

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1