• 【译】Tablix指南通向报表服务的阶梯系列(四)


       “Ah ha,发现你了!”你的经理突然从桌子后面的假花旁冒出来,发出胜利的叫声。你沮丧地转过头看着经理。

       “我已经创建了一个基本报表,并抓取了一些数据,我正打算-”你在他打断你之前快速的解释着。

        “赶紧做完就好,大BOSS需要这个报表,越快越好”留下这些话后,你的经理扬长而去。

          你心情沉重的坐下,打开SQLServerCentral.com,又到了读本系列文章的时候了。本篇文章阐述如何分组信息,调整动态列和行分组以及在Reporting Service中使用Tablix。

    Table + Matrix + List = Tablix

        Tablix是SSRS展示数据的工具。SQL Server Reporting Services 2008之后才有的报表项。由三个之前具有相似性的报表项组成:表、矩阵、列表。Tablix的视图如图4-1所示。

        1

        图4-1.Tablix视图

        你并不能在Business Intelligence Development Studio (BIDS)的工具箱中找到Tablix工具。取而代之的是,你可以在图二分别看到表、矩阵和列表项,无论你将这三个项中的哪个项拖入报表,报表服务其实使用的都是Tablix。

        2

         图4-2.工具箱中展现Tablix模板

         注意:如果你在BIDS中看不到工具箱,点击视图->工具箱选项或者按快捷键Ctrl + Alt + X.在工具箱中,所有的报表项都放在“报表项”头下。

         下面我们来看第一个tablix模版:表

        表是一个可以展示分组和聚合后数据的简单对象。如果数据包含的列是固定的,则可以使用表项。让我们从将”表”拽到报表上开始,在上一章中我们已经设置了数据集,这里直接为表使用这个数据集。每一个表只能从一个数据集中抓取数据。你可以从属性窗格中->DataSetName属性的下拉列表中选择数据集。属性窗格如图4-3。

        3

         图4-3.属性窗格和DataSetName属性

        现在我们可以使用数据集中的字段来涉及表了,我们可以通过如下几种方式来在表中插入字段:

    •     从报表数据窗格中拽入字段
    •     从每一个格子中右上角的下拉列表中选择字段,如图4-4所示
    •     在每个格子的属性窗格里进行选择

        4

        图4-4.表字段的选择

        使用那种方式设置字段并不重要,一个简单表布局如图4-5所示。

        5

        图4-5.简单的表布局

    分组

        Tablix可以通过每一个“详细信息”分组来显示表。“详细信息”组为我们提供了一个了解分组原理的基本概念。每一次报表服务看到一个唯一行,它都会创建一个详细信息组。与这个原理相同,每一个所创建的分组都对唯一值再次创建一个详细信息组,下面我们来通过实例阐述这个概念。

        在分组窗格中。在SSRS2008之前的版本中,你可以在表和矩阵的属性窗格中看到这个窗格,而在之后的版本中,你直接在BIDS的底部就能看到这个窗格,如图4-6所示。

        6

         图4-6.行和列的分组窗口

         因为我们在表模版上工作,让我们来创建一个行组。点击行组窗格下的详细信息右边的下拉箭头,你会看到多个选项,包括”添加组”。选择添加组->父组选项,然后选择分组的条件列。如果需要添加组头和组尾,选择对应的Checkbox.完成的截图如图4-7所示。

        7

        图4-7.完成的Tablix组窗口

        当你点击完成后,你可以在表设计界面中看到如图4-8所示。

        8

         图4-8.分组后的表设计

        你可以在组头或组尾加入聚合函数或敲入一个标题来描述这一列。下面通过一个表达式来创建一个累加聚合。右键表格右下角处于行和列最后的那个单元格,右键点击文本单元格属性,在值那一栏填入:=SUM(Fields!TotalDue.Value),如图4-9所示。

        9

        图4-9 文本框属性

         在开始运行报表之前,让我们来看一下Tablix的矩阵模版。在讨论矩阵之前我们首先讨论分组是因为这是理解表和矩阵之前区别的关键点。接下来我们来看矩阵。

    矩阵(Matrix)

         和表类似,矩阵也有对行或列进行聚合分组的功能。分组后的结果在x轴和轴上进行增长。创建列组和行组的方法很类似,唯一的区别是对属性的设置一个在行组窗格,一个是在列组窗格。下面例子是使用矩阵的报表按照不同月和销售地区对销售报表进行汇总的例子。如图4-10所示。

        10

         图4-10. 矩阵的布局

    列表(List)

        列表在讨论tablix时经常会被遗忘因为它实在是太简单了。数据集中的每一行都会在列表中生成一行和一列。如果你需要在报表中创建一个不受限于当前格式元素,你可以使用列表。你可以在列表中键入任何文本框来满足最终用户所希望的布局。

    格式(Formatting)

        报表的最终用户通常都希望数据以既定的格式显示。因为格式所应用的最小单元是文本框。所以你可以通过对表格,矩阵和列表来设置格式从而应用到tablix。在对我们已经创建好的基于表的报表中,我们对列排序规则和字体属性做一些改变。

    列排序

        几乎每一张报表都需要应用列排序从而将数据以既定的排序展示。通过点击tablix的任何一出,在出现灰色框中点击右键,选择Tablix属性,如图4-11所示。

        11

        图4-11.选择Tablix属性窗口

        在属性窗口中,在左边的选项中选择排序。选择希望按照规则排序的列并选择排序顺序为A-Z,也就是升序。完成的窗口如图4-12所示。记住分组本身也带有排序,如果你运行报表后发现排序有问题,检查以确保其他类型的排序不会覆盖掉当前的排序。

        12

          图4-12.完成后的排序窗格

    字体属性

        下一步,让我们来看字体属性。这个设置可以让字体更加好看。选择所有列的头那行,在属性窗格中,选择字体属性->FontWeight属性->粗体选项,如图4-13所示。

        13

        图4-13.在属性窗格中的字体属性选择

        在所有的这些准备,分组和格式设置完成后,我们迎来了完成的报表。点击预览标签,可以看到如图4-14所示。

        14

        图4-14.最终的报表视图

    接下来:饭后甜点

        现在,我们已经完成了报表服务中报表的一些核心概念的学习。我们在表和矩阵中展示数据,并对其进行分组,排序和设置格式。这可以让我们的报表满足大多数用户的需求。因为我们总是想给用户最棒的产品,接下来我们学习如何在报表中添加图表和地图使我们给大BOSS的报表看上去充满活力。我将在本系列文章的下一篇以图表展示未知中进行阐述。

  • 相关阅读:
    SGU 106 The equation 扩展欧几里德
    poj 2478 Farey Sequence 欧拉函数前缀和
    uva 11752 The Super Powers 素数+大数判断大小
    Lightoj 1370 素数打表 +二分
    vijos 1250 最勇敢的机器人 分组背包+并查集
    Codeforces Round #366 (Div. 2) A , B , C 模拟 , 思路 ,queue
    BZOJ 4034: [HAOI2015]T2 树链剖分
    BZOJ 1057: [ZJOI2007]棋盘制作 悬线法求最大子矩阵+dp
    BZOJ 1260: [CQOI2007]涂色paint 区间DP
    BZOJ 1264: [AHOI2006]基因匹配Match 树状数组+DP
  • 原文地址:https://www.cnblogs.com/CareySon/p/2372436.html
Copyright © 2020-2023  润新知