教程:创建自由格式的报表(报表生成器)
本教程教您如何基于与新闻稿很像的示例销售数据创建一个报表。 该报表按地区对信息进行分组,并且显示该地区的销售经理的姓名以及详细和汇总销售信息。 您将使用列表数据区域作为自由格式的报表的基础,然后添加具有图像的装饰性面板、插入了数据的静态文本、用于显示详细信息的表以及可选的用于显示汇总信息的饼图和柱形图。
下图显示与您将创建的报表类似的报表。
您在本教程中创建的报表的增强版本可用作示例 SQL Server 2012 报表生成器报表。 有关下载此示例报表和其他内容的详细信息,请参阅报表生成器示例报表。
学习内容
在本教程中,您将了解如何执行下列操作:
创建空白报表、数据源和数据集
添加并配置列表
添加图形
添加自由格式的文本
添加用于显示详细信息的表
设置数据格式
保存报表
其他可选步骤
添加线条以便分隔报表区域
添加汇总数据可视化
本教程的预计学时:20 分钟。
要求
有关要求的详细信息,请参阅教程先决条件(报表生成器)。
1.创建空白报表、数据源和数据集
从报表生成器的**“入门”**对话框中,选择共享数据源,创建嵌入数据集,然后在列表中显示数据。
注意 |
---|
在本教程中,由于查询包含了数据值,因此它不需要外部数据源。 这样,查询就会非常长。 在业务环境中,查询不会包含数据。 本教程中的查询仅供学习使用。 |
创建空白报表
单击**“开始”,依次指向“程序”、Microsoft SQL Server 2012 Report Builder,再单击“报表生成器”**。
注意 此时应显示“入门”对话框。 如果未显示该对话框,则从“报表生成器”按钮,单击“新建”。
在**“入门”对话框的左窗格中,确保已选择“新建报表”**。
在右窗格中,单击**“空白报表”**。
创建新数据源
在“报表数据”窗格中,单击**“新建”,然后单击“数据源”**。
在**“名称”**框中,键入:ListDataSource。
单击**“使用我的报表中嵌入的连接”**。
请确认 Microsoft SQL Server 中的连接类型,然后在**“连接字符串”**框中,键入:Data Source = <servername>
<servername>(例如 Report001)指定安装了 SQL Server Database Engine 的实例的计算机。 因为报表数据不是从 SQL Server 数据库提取的,所以不需要包括数据库的名称。 指定服务器上的默认数据库用于对查询进行分析。
单击“确定”。
新建数据集
在“报表数据”窗格中,单击**“新建”,然后单击“数据集”**。
确保数据源为 ListDataSource。
在**“名称”**框中,键入 ListDataset。
确保已选择**“文本”查询类型,然后单击“查询设计器”**。
单击**“编辑为文本”**。
复制并将以下查询粘贴到查询窗格中:
SELECT CAST('2009-01-05' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Accessories' as Subcategory,'Carrying Case' as Product, CAST(16996.60 AS money) AS Sales, 68 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(13747.25 AS money) AS Sales, 55 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Accessories' as Subcategory,'Carrying Case' as Product, CAST(9248.15 AS money) As Sales, 37 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1350.00 AS money) AS Sales, 18 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1800.00 AS money) AS Sales, 24 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1125.00 AS money) AS Sales, 15 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(1147.50 AS money) AS Sales, 17 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Accessories' as Subcategory, 'Lens Adapter' as Product, CAST(742.50 AS money) AS Sales, 11 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(1417.50 AS money) AS Sales, 21 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(13497.30 AS money) AS Sales, 54 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(11997.60 AS money) AS Sales, 48 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(10247.95 AS money) As Sales, 41 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Accessories' as Subcategory, 'Tripod' as Product, CAST(1200.00 AS money) AS Sales, 16 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(2025.00 AS money) AS Sales, 27 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1425.00 AS money) AS Sales, 19 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(887.50 AS money) AS Sales, 13 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Accessories' as Subcategory, 'Lens Adapter' as Product, CAST(607.50 AS money) AS Sales, 9 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(1215.00 AS money) AS Sales, 18 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(10191.00 AS money) AS Sales, 79 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(8772.00 AS money) AS Sales, 68 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(10578.00 AS money) AS Sales, 82 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory,'Digital' as Subcategory, 'Slim Digital' as Product, CAST(7218.10 AS money) AS Sales, 38 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory,'Digital' as Subcategory, 'Slim Digital' as Product, CAST(8357.80 AS money) AS Sales, 44 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory,'Digital' as Subcategory,'Slim Digital' as Product, CAST(9307.55 AS money) AS Sales, 49 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(3870.00 AS money) AS Sales, 30 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(5805.00 AS money) AS Sales, 45 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(8643.00 AS money) AS Sales, 67 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Lauren Johnson' as FullName,'Central' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(9877.40 AS money) AS Sales, 52 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Warren Pal' as FullName,'North' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(12536.70 AS money) AS Sales, 66 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Fernando Ross' as FullName,'South' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(6648.25 AS money) AS Sales, 35 as Quantity
单击**“运行”**以运行查询。
查询结果将是可用于在您的报表中显示的数据。
单击“确定”。
2.添加并配置列表
Reporting Services 提供三个数据区域模板:表、矩阵和列表。 这些模板全都基于称作 Tablix 的数据区域。列表模板适合于创建自由格式的报表。 有关详细信息,请参阅列表(报表生成器和 SSRS)。
您将使用一个列表来显示与新闻稿很像的报表中销售地区的销售信息。 这些信息按地区分组。 您将添加一个按地区对数据进行分组的新行组,然后删除内置的“详细信息”行组。
添加列表
在功能区的**“插入”选项卡的“数据区域”区域中,单击“列表”**,然后将该列表拖到表体内。 使列表 7 英寸高,6 1/4 英寸宽。
注意 此报表使用纸张大小 Letter (8.5 X11) 以及 1 英寸的边距。 高于 9 英寸或宽于 6 1/2 英寸的报表页可能会生成空白页。
注意 一个大的矩形将填充该列表。
右键单击该列表,然后单击**“Tablix 属性”**。
重要提示 请确保右键单击的是列表,而非列表内的矩形。 若要选择该列表,请单击其左上角。
在**“数据集名称”**下拉列表中,选择 ListDataset。
单击“确定”。
右键单击该矩形,再单击**“矩形属性”**。
在**“常规”选项卡中,选中“在组件后面添加分页符”**复选框。
单击“确定”。
添加新行组和删除“详细信息”组
在“行组”窗格中,右键单击“详细信息”组,指向**“添加组”,然后单击“父组”**。
在下拉列表中,选择 [Territory].。
单击“确定”。
将一列添加到该列表中。 该列包含单元 [Territory].。
右键单击列表中的 Territory 列,然后单击**“删除列”**。
单击**“仅删除组”**。
在“行组”窗格中,右键单击“详细信息”组,然后单击**“删除组”**。
单击**“仅删除组”**。
单击“确定”。
3.添加图形
使用列表数据区域的好处之一是,您可以将矩形和文本框之类的报表项添加到任何地方,而不会被限制为表格布局。 您将通过添加图形(用颜色填充的矩形)增强报表的外观。
向报表添加图形元素
在功能区的**“插入”选项卡上,单击“矩形”**,然后将一个矩形拖到该列表的左上角。 使该矩形 7 英寸高,1 英寸宽。
右键单击该矩形,再单击**“矩形属性”**。
单击**“填充”**选项卡。
在**“填充颜色”下拉列表中,单击“其他颜色”,然后选择“石板灰”**颜色。
单击“确定”。
单击**“运行”**以预览报表。
该报表的左侧现在具有一个垂直图形,该图形由一个石板灰颜色的矩形构成。
4.添加自由格式的文本
文本框包含在每个报表页上都重复的静态文本以及多个数据字段。
向报表添加文本
单击**“设计”**返回设计视图。
在功能区的**“插入”选项卡上,单击“文本框”**,然后将一个文本框拖到该列表的左上角,但在您以前添加的矩形内。 使该文本框大约 3 英寸高,5 英寸宽。
将光标置于文本框的上部,然后键入:Newsletter for 。
注意 请确保在“for”一词之后包含一个多余的空格。 该空格用于将文本以及您将在下一步骤中添加的字段分隔开来。
将 Territory 字段拖到该文本框,然后将其置于您在步骤 3 中键入的文本之后。
选择所有文本,右键单击,然后单击**“文本属性”**。
单击**“字体”**选项卡。
在**“字体”列表中,选择“Times New Roman”;在“字号”中,选择“20 pt”;在“颜色”中,选择“褐紫红色”**。
单击“确定”。
将光标置于您在步骤 3 中键入的文本之下,然后键入:Hello 。
注意 请确保在“Hello”一词之后包含一个多余的空格。 该空格用于将文本以及您将在下一步骤中添加的字段分隔开来。
将 FullName 字段拖到该文本框,将其置于您在步骤 9 中键入的文本之后,然后键入一个逗号 (,)。
选择您在步骤 9 和 10 中添加的文本,右键单击,然后单击**“文本属性”**。
单击**“字体”**选项卡。
在**“字体”列表中,选择“Times New Roman”;在“字号”中,选择“16 pt”;在“颜色”中,单击“其他颜色”,然后选择“石板灰”**颜色。
单击“确定”。
将光标置于您在步骤 9 到 13 中添加的文本的下方,然后复制并粘贴以下“难懂的”文本:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin sed dolor in ipsum pulvinar egestas. Sed sed lacus at leo ornare ultricies. Vivamus velit risus, euismod nec sodales gravida, gravida in dui. Etiam ullamcorper elit vitae justo fermentum ut ullamcorper augue sodales. Ut placerat, nisl quis feugiat adipiscing, nibh est aliquet est, mollis faucibus mauris lectus quis arcu. In mollis tincidunt lacinia. In vitae erat ut lorem tincidunt luctus. Curabitur et magna nunc, sit amet adipiscing nisi. Nulla rhoncus elementum orci nec tincidunt. Aliquam imperdiet cursus erat vel tincidunt. Donec et neque ac urna rutrum sodales. In id purus et nisl dignissim dapibus. Sed rhoncus metus at felis feugiat eu tempor dolor vehicula. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam faucibus consectetur diam eu pellentesque. Nulla facilisi. Proin ligula enim, porta ut tincidunt id, adipiscing sit amet eros. Ut purus sem, bibendum et vulputate sit amet, facilisis eget magna. Sed aliquam erat non erat eleifend hendrerit. Ut a ligula est, sit amet eleifend enim. Ut et nisl enim, sit amet adipiscing augue. Vivamus eu arcu ac libero posuere elementum. Integer condimentum bibendum venenatis. Integer odio tellus, feugiat in pellentesque semper, interdum nec sem. Sed cursus euismod sem, ut elementum sapien placerat vel.
选择您在步骤 15 中添加的文本,右键单击,然后单击**“文本属性”**。
单击**“字体”**选项卡。
在**“字体”列表中,选择“Arial”;在“字号”中,选择“10 pt”;在“颜色”中,选择“黑色”**。
单击“确定”。
将光标置于您在步骤 15 中粘贴的文本的下方,然后键入:Congratulations on your total sales of 。
注意 请确保在“of”一词之后包含一个多余的空格。 该空格用于将文本以及您将在下一步骤中添加的字段分隔开来。
将 Sales 字段拖到该文本框,将其置于您在步骤 20 中键入的文本之后,然后键入一个感叹号 (!)。
右键单击 [Sales],然后单击**“表达式”**。
在表达式框中,更改表达式以便包括 Sum 函数,如下所示:
=Sum(Fields!Sales.value)
单击“确定”。
选择您在步骤 20 到 23 中添加的文本,右键单击,然后单击**“文本属性”**。
单击**“字体”**选项卡。
在**“字体”列表中,选择“Times New Roman”;在“字号”中,选择“16 pt”;在“颜色”中,选择“褐紫红色”**。
单击“确定”。
选择 [Sum(Sales)],在功能区的**“主文件夹”选项卡的“编号”组中,单击“货币”**按钮。
右键单击包含“单击以添加标题”文本的文本框,然后单击**“删除”**。
选择列表框,并且使用箭头键将其移到页面的顶部。
单击**“运行”**以预览报表。
报表将显示静态文本,并且每个报表页都包括属于某个地区的数据。 销售额的格式设为货币。
5.添加一个表以显示销售详细信息
使用新建表和矩阵向导可以将表添加到自由格式的报表。 完成向导后,您将手动添加一个合计行。
添加表
在功能区的**“插入”选项卡的“数据区域”区域中,单击“表”,然后单击“表向导”**。
在“选择数据集”页上,单击 ListDataset。
单击**“下一步”**。
在“排列字段”页上,将 Product从**“可用字段”拖到“值”**中。
对于 SalesDate、Quantity 和 Sales,重复步骤 4。 将 SalesDate 置于 Product 之下,将 Quantity 置于 SalesDate 之下,将 Sales 置于 SalesDate 之下。
单击**“下一步”**。
在“选择布局”页上,查看表的布局。
该表非常简单。 它由五列构成,没有行组或列组。 因为它不具有组,所以与组相关的布局选项不可用。 您将手动更新该表以便包括本教程后面部分中的总计。
单击**“下一步”**。
在“选择样式”页的“样式”窗格中,选择**“石板”**。
单击**“完成”**。
将该表拖到您在第 4 课中添加的文本框之下。
注意 请确保该表位于列表内。
在“行组”窗格中,右键单击“详细信息”,指向**“添加总计”,然后单击“之后”**。
单击**“运行”**以预览报表。
该报表将显示具有销售详细信息和总计的一个表。
6.设置数据格式
将数字数据的格式设为货币,将日期格式设为仅限天和时间。
设置字段表的格式
单击**“设计”**切换到设计视图。
单击包含 [Sum(SalesSales)] 的表单元,然后在**“主文件夹”选项卡上的“数字”组中,单击“货币”**按钮。
单击包含 [SalesDate] 的单元,然后在**“数字”组上,从下拉列表中选择“日期”**。
单击**“运行”**以预览报表。
报表现在将显示设置了格式的数据并且更易于阅读。
7.保存报表
您可以将报表保存到报表服务器、SharePoint 库或本地计算机。
在本教程中,将报表保存到报表服务器。 如果您没有对报表服务器的访问权限,则可以保存到您的计算机。
将报表保存到报表服务器
从**“报表生成器”按钮,单击“另存为”**。
单击**“最近使用的站点和服务器”**。
选择或键入您拥有保存报表权限的报表服务器的名称。
此时将显示“正在连接到报表服务器”消息。 当连接完成时,您将看到报表服务器管理员指定为报表默认位置的报表文件夹的内容。
在**“名称”**中,用 SalesInformationByTerritory 替换默认名称。
单击**“保存”**。
报表即已保存至报表服务器。 所连接的报表服务器的名称将在窗口底部的状态栏中显示。
将报表保存到计算机上
从**“报表生成器”按钮,单击“另存为”**。
单击**“桌面”、“我的文档”或“我的电脑”**,然后浏览到要将报表保存到的文件夹。
在**“名称”**中,用 SalesInformationByTerritory 替换默认名称。
单击**“保存”**。
8.(可选)添加线条以便分隔报表区域
添加线条可以分隔报表的可编辑区域和详细信息区域。
添加线条
单击**“设计”**返回设计视图。
在功能区的**“插入”选项卡的“报表项”区域中,单击“线条”**。
将一个线条拖到您在第 4 课中添加的自由格式的文本框之下。
单击该线条。
单击**“主文件夹”**选项卡。
在**“边框”区域中,对于宽度选择 4 1/2 pt,对于颜色选择“褐紫红色”**。
9.(可选)添加汇总数据可视化
矩形有助于控制报表的呈现方式。 将饼图和柱形图放置于矩形内,可以确保报表以您所需的方式呈现。
添加矩形
单击**“设计”**返回设计视图。
在功能区的**“插入”选项卡的“报表项”区域中,单击“矩形”**,然后将该矩形拖到列表内表的右侧。 使该矩形 2 英寸宽,4 英寸高。
将矩形的顶部和表的顶部对齐。
添加饼图
在功能区的**“插入”选项卡的“区域”区域中,单击“图表”,然后单击“图表向导”**。
在“选择数据集”页中,单击 ListDataset,然后单击**“下一步”**。
单击**“饼图”,然后单击“下一步”**。
在“排列图表字段”页上,将 Product 拖到**“类别”**中。
将 Quantity 拖到**“值”中,然后单击“下一步”**。
在“选择样式”页的“样式”窗格中,选择**“石板”**。
单击**“完成”**。
调整在报表的左上角中出现的图表大小,使其为 1 1/2 英寸高,2 英寸宽。
将图表拖至该矩形内。
右键单击图表标题,然后单击**“标题”**。
在**“图表标题属性”**对话框的“标题”文本中,键入:Product Quantities Sold。
单击**“字体”选项卡,然后在“大小”**列表中,单击 10pt。
单击“确定”。
添加柱形图
在功能区的**“插入”选项卡的“区域”区域中,单击“图表”,然后单击“图表向导”**。
在“选择数据集”页中,单击 ListDataset,然后单击**“下一步”**。
单击**“柱形”,然后单击“下一步”**。
在“排列图表字段”页上,将 Product拖到**“类别”**中。
将 Sales 拖到**“值”中,然后单击“下一步”**。
“值”显示在垂直轴上。
在“选择样式”页的“样式”窗格中,选择**“石板”**。
单击**“完成”**。
一个柱形图将添加到报表的左上角。
调整图表的大小,使其 2 英寸宽,2 英寸高。
将图表拖至该矩形内的饼图之下。
右键单击图表标题,然后单击**“标题”**。
在**“图表标题属性”**对话框的“标题”文本中,键入:Product Sales。
单击**“字体”选项卡,然后在“大小”**列表中,单击 10pt。
右键单击垂直轴标题,然后取消选中**“显示轴标题”**。
对于水平轴标题,重复执行步骤 13。
右键单击图例,然后单击**“删除图例”**。
注意 删除轴标题和图例将在图表为较小大小时更容易阅读。
确认图表位于矩形内
右键单击您在本课程的前面部分中添加的矩形。
在“属性”窗格中,Name 属性显示矩形的名称。
右键单击饼图。
在“属性”窗格中,确认 Parent 属性包含矩形的名称。
右键单击柱形图,重复执行步骤 2 和 3。
注意 如果这些图表不位于矩形内,则呈现的报表不会一起显示这些图表。
使图表具有相同大小
单击饼图,按下 Ctrl 键,然后单击柱形图。
选择这两个图表,右键单击,指向**“布局”,然后单击“使宽度相同”**。
注意 您首先单击的项将确定所有调整大小的项的宽度。
使用**“使高度相同”**选项重复执行步骤 1 和 2。
单击**“运行”**以预览报表。
报表现在将在饼图和柱形图中显示汇总销售数据。
后续步骤
有关如何创建自由格式的报表的教程到此结束。
有关列表的详细信息,请参阅表、矩阵和列表(报表生成器和 SSRS)、列表(报表生成器和 SSRS)、Tablix 数据区域(报表生成器和 SSRS) 和Tablix 数据区域单元、行和列(报表生成器和 SSRS)。
有关查询设计器的详细信息,请参阅查询设计器(报表生成器) 和基于文本的查询设计器用户界面(报表生成器)。