教程:创建自由格式的报表(报表生成器)
在本教程中,将创建充当新闻稿的分页报表。 每一页都会显示静态文本、汇总视觉对象和详细的示例销售数据。
该报表按地区对信息进行分组,并且显示该地区的销售经理的姓名以及详细和汇总销售信息。 首先,将列表数据区域作为自由窗体报表的基础。 你将使用列表数据区域作为自由格式的报表的基础,然后添加具有图像的装饰性面板、插入了数据的静态文本、用于显示详细信息的表以及可选的用于显示汇总信息的饼图和柱形图。
完成本教程的估计时间:20 分钟。
要求
有关要求的详细信息,请参阅教程先决条件(报表生成器)。
1. 创建空白报表、数据源和数据集
注意
在本教程中,由于查询包含了数据值,因此它不需要外部数据源。 这样,查询就会非常长。 在业务环境中,查询不会包含数据。 本教程中的查询仅供学习使用。
创建空白报表
通过计算机、Web 门户或 SharePoint 集成模式 启动报表生成器 Reporting Services 。
将打开“新建报表或数据集”对话框。
如果未出现“新建报表或数据集”对话框,请通过“文件”菜单转至“新建”。
在左窗格中,确保已选中“新建报表”。
在右窗格中,选择“空白报表”。
创建新的数据源
在“报表数据”窗格中,选择“新建”>“数据源”。
在“名称”框中输入:ListDataSource
选择“使用我的报表中嵌入的连接” 。
请确认连接类型为 Microsoft SQL Server,然后在“连接字符串”框中输入:Data Source = <servername>
<servername>(例如,Report001)指定安装 SQL Server 数据库引擎的实例的计算机。 因为此报表的数据不是从 SQL Server 数据库中提取的,所以不需要包括数据库的名称。 指定服务器上的默认数据库仅用于对查询进行分析。
选择“凭据”,然后输入连接至 SQL Server 数据库引擎实例所需的凭据。
选择“确定”。
创建新的数据集
在“报表数据”窗格中,选择“新建”>“数据集”。
在“名称”框中输入:ListDataset。
选择“使用在我的报表中嵌入的数据集”,然后验证数据源是否为 ListDataSource。
确保已选择“文本”查询类型,然后选择“查询设计器”。
选择“编辑为文本”。
复制并将以下查询粘贴到查询窗格中:
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 数据区域。 有关详细信息,请参阅在分页报表中创建带列表的发票和表单(报表生成器)。
此教程中,将使用一个列表在格式类似新闻稿的报表中显示销售区域的销售信息。 这些信息按地区分组。 你将添加一个按地区对数据进行分组的新行组,然后删除内置的“详细信息”行组。
添加列表
转至“插入”选项卡“数据区域”>“列表”。
在表体(标题和页脚区域之间)内选择,然后拖动生成列表框。 将列表框设为 7 英寸高,6.25 英寸宽。 若要获取确切大小,请在“位置”下的“属性”窗格中,输入“宽度”和“高度”属性的值。
注意
此报表使用纸张大小 Letter (8.5 X11) 以及 1 英寸的边距。 高于 9 英寸或宽于 6.5 英寸的列表框可能会生成空白页。
选择列表框内部,然后右键单击列表顶部栏,选择“Tablix 属性”。
在 “数据集名称” 下拉列表中,选择 ListDataset。
选择“确定”。
在列表内右键单击,然后选择“矩形属性”。
在“常规”选项卡上,选中“在组件后面添加分页符”复选框 。
选择“确定”。
添加新行组和删除“详细信息”组
在“行”分组窗格中,右键单击详细信息组,指向“添加组”,然后选择“父组”。
在“分组依据”列表中,选择
[Territory].
选择“确定”。
一个包含单元“
[Territory]
”的列会添加到列表中。右键单击列表中的 Territory 列,然后选择“删除列”。
选择“仅删除列”。
在“行组”窗格中,右键单击“详细信息”组>“删除组”。
选择“仅删除组”。
选择“确定”。
3. 添加图形元素
列表数据区域的好处之一是,可以将矩形和文本框之类的报表项添加到任何地方,而不会被限制为表格布局。 你将通过添加图形(用颜色填充的矩形)增强报表的外观。
向报表添加图形元素
在“插入”选项卡上,选择“矩形” 。
选择列表的左上角,然后通过拖动将矩形设为 7 英寸高,3.5 英寸宽。 同样,若要获取精确大小,请在“位置”下的“属性”窗格中,输入“宽度”和“高度”的值。
右键单击该矩形>“矩形属性”。
选择“填充”选项卡。
在“填充颜色”中,选择“浅灰色” 。
选择“确定”。
选择“运行” 以预览报表。
报表的左侧现在有一个垂直图形,该图形由一个浅灰色的矩形构成,如下图中所示。
4. 添加自由格式的文本
可以添加文本框,用于显示在每个报表页上都重复的静态文本,以及数据字段。
向报表添加文本
选择“设计”返回设计视图。
在“插入”选项卡上,转至“文本框”。 在列表左上角的之前添加的矩形内部选择,通过拖动将文本框设为约 3.45 英寸宽,5 英寸高。
将光标置于文本框中,然后输入:Newsletter for。 在“for”一词后包括一个空格,以将文本与将要在下一步中添加的字段分隔开来。
将“
[Territory]
”字段从“报表数据”窗格的“ListDataSet”拖到文本框中,将它放在“Newsletter for ”后面。选择文本和“
[Territory]
”字段。转至“开始”选项卡>“字体”,选择:
- “Segoe Semibold”。
- “20 磅”。
- “番茄色”。
将光标置于步骤 3 中输入的文本下方,然后输入 Hello 并在该词后面加一个空格,以将文本与将要在下一步中添加的字段分隔开来。
将
[FullName]
字段从“报表数据”窗格的“ListDataSet”拖到文本框中,将它放在“Hello”后面,然后输入一个逗号 (,)。选择在之前步骤中添加的文本。
转至“开始”选项卡>“字体”,选择:
- “Segoe Semibold”。
- “16 磅”。
- “黑色”。
将光标置于在步骤 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.
选择刚才添加的文本。
转至“开始”选项卡>“字体”,选择:
- “Segoe UI”。
- “10 磅”。
- “黑色”。
将光标置于文本框内无意义文本的下方,然后输入 Congratulations on your total sales of 并在文本后面加一个空格,以将文本与将要在下一步中添加的字段分隔开来。
将“Sales”字段拖到文本框中,放在之前步骤中输入的文本后面,然后输入一个感叹号 (!)。
选择刚才添加的文本和字段。
转至“开始”选项卡>“字体”,选择:
- “Segoe Semibold”。
- “16 磅”。
- “黑色”。
仅选择“
[Sales]
”字段,右键单击该字段>“表达式”。在“表达式”框中,更改表达式以便包括 Sum 函数,如下所示:
=Sum(Fields!Sales.value)
选择“确定”。
在仍然选中“
[Sum(Sales)]
”的情况下,转至“开始”选项卡>“数字”组>“货币”,。右键单击包含“选择以添加标题”文本的文本框,然后选择“删除”。
选择列表框。 选择两个双头箭头,将它移到页面顶部。
选择“运行” 以预览报表。
报表将显示静态文本,并且每个报表页都包括属于某个地区的数据。 销售额的格式设为货币。
5. 添加一个表以显示销售详细信息
使用新建表和矩阵向导可以将表添加到自由格式的报表。 完成向导后,你将手动添加一个合计行。
添加表
在“插入”选项卡上,转至“数据区域”区域>“表”>“表向导”。
在“选择数据集”页上,选择“ListDataset”>“下一步”。
在“排列字段”页上,将“Product”字段从“可用字段”拖到“值”中 。
对“SalesDate”、“Quantity”和“Sales”重复步骤 3。 将 SalesDate 放置于 Product 之后,将 Quantity 放置于 SalesDate 之后,并且将 Sales 放置于 SalesDate 之后。
选择下一步。
在 “选择布局” 页上,查看表的布局。
这个表很简单:只有五列,没有行或列组。 因为它不具有组,所以与组相关的布局选项不可用。 你将手动更新该表以便包括本教程后面部分中的总计。
选择下一步。
选择完成。
将该表拖到您在第 4 课中添加的文本框之下。
注意
确保该表位于列表框和灰色矩形内部。
选中该表,在“行组”窗格中右键单击“详细信息”>“添加总计”>“之后”。
选择“Product”列中的单元,然后输入 Total。
选择“[SalesDate]”字段。 在“开始”选项卡>“数字”上,将“默认值”更改为“Date”。
选择“[Sum(Sales)]”字段。 在“开始”选项卡>“数字”上,将“默认值”更改为“Currency”。
选择“运行” 以预览报表。
该报表将显示具有销售详细信息和总计的一个表。
6. 保存报表
您可以将报表保存到报表服务器、SharePoint 库或本地计算机。
在本教程中,将报表保存到报表服务器。 如果你没有对 Report Server 的访问权限,则可以保存到你的计算机。
将报表保存到 Report Server
从“报表生成器”按钮,选择“另存为”。
选择“最近使用的站点和服务器”。
选择或输入你拥有保存报表权限的 Report Server 的名称。
此时将显示“正在连接到报表服务器”消息。 当连接完成时,您将看到报表服务器管理员指定为报表默认位置的报表文件夹的内容。
在 “名称” 中,用 SalesInformationByTerritory替换默认名称。
选择“保存”。
报表即已保存至报表服务器。 你连接的 Report Server 的名称将显示在窗口底部的状态栏中。
将报表保存到计算机上
从“报表生成器”按钮,选择“另存为”。
选择“桌面”、“我的文档”或“我的电脑”,然后浏览到要将报表保存到的文件夹。
在 “名称” 中,用 SalesInformationByTerritory替换默认名称。
选择“保存”。
7.(可选)添加线条以便分隔报表区域
添加线条可以分隔报表的可编辑区域和详细信息区域。
添加行
选择“设计”返回设计视图。
在“插入”选项卡上,转至“报表项”>“线条”。
在第 4 课中添加的文本框下方画一条线。
选择这条线,然后在“主文件夹”选项卡>“边框”上,选择:
- “宽度”:选择“3 磅” 。
- “颜色”选择“番茄色”。
8.(可选)添加汇总数据可视化
矩形有助于控制报表的呈现方式。 将饼图和柱形图放置于矩形内,可以确保报表以您所需的方式呈现。
添加矩形
选择“设计”返回设计视图。
在“插入”选项卡上,转至“报表项”>“矩形”。 将列表框内的矩形拖到表的右侧,将矩形设为约 2.25 英寸宽,7.9 英寸高。
选中新矩形,在“属性”窗格中,将 边框颜色设为浅灰色、 边框样式设为纯色以及 边框宽度设为 2 磅。
将矩形的顶部和表的顶部对齐。
添加饼图
在“插入”选项卡上,转至“数据可视化”>“图表”>“图表向导”。
在“选择数据集”页上,选择“ListDataset”>“下一步”。
选择“饼图”>“下一步”。
在“排列图表字段”页上,将“Product”拖到“类别”中。
将“Quantity”拖到“值”中,然后选择“下一步”。
选择“完成”。
调整报表左上角中出现的图表的大小,将其设为约 2.25 英寸宽,3.6 英寸高。
将图表拖至该矩形内。
选择图表标题,然后输入:Product Quantities Sold。
在“开始”选项卡>“字体”上,对标题进行以下设置:
- 字体为 Segoe UI Semibold。
- 大小为 12 pt。
- 颜色为黑色。
右键单击“图例”>“图例属性”。
在“常规”选项卡的“图例位置”下,选择底部的中心点 。
选择“确定”。
根据需要通过拖动让图表区域更高。
添加柱形图
转至“插入”选项卡>“数据可视化”>“图表”>“图表向导”。
在“选择数据集”页上,选择 ListDataset,然后选择“下一步”。
选择“列”,然后选择“下一步”。
在“排列图表字段”页上,将“Product”字段拖到“类别”窗格中 。
将“Sales”拖到“值”中,然后选择“下一步”。
“值”显示在垂直轴上。
选择“完成”。
一个柱形图将添加到报表的左上角。
将图表大小调整为约 2.25 英寸宽,4 英寸高。
将图表拖至该矩形内的饼图之下。
选择图表标题,然后输入:Product Sales。
在“开始”选项卡>“字体”上,对标题进行以下设置:
- 字体为 Segoe UI Semibold。
- 大小为 12 pt。
- 颜色为黑色。
右键单击图例,然后选择“删除图例”。
注意
删除图例可在图表较小时提高图表的可读性。
选择图表轴,然后转至“开始”选项卡>“数字”>“货币”。
选择“减少小数位数”两次,以便数字仅显示美元,而不显示美分。
确认图表位于矩形内
可以使用矩形作为报表页上其他项的容器。 阅读有关 矩形作为容器的详细信息。
选择之前在本课中创建的并将图表添加到其中的矩形。
在“属性”窗格中, Name 属性显示矩形的名称。
选择饼图。
在 “属性” 窗格中,确认 Parent 属性包含矩形的名称。
选择柱形图,重复步骤 3。
注意
如果这些图表不位于矩形内,则呈现的报表不会一起显示这些图表。
使图表具有相同大小
选择饼图,按下 Ctrl 键,然后选择柱形图。
选中两个图表,然后右键单击>“布局”>“使宽度相同”。
注意
你首先选择的项决定所有选定项的宽度。
选择“运行” 以预览报表。
报表现在将在饼图和柱形图中显示汇总销售数据。