SSRS 报表开发小技巧

说明:  

开发工具为: SQL Server Data Tools (英文版)     开发环境为: SQL Server 2012 (英文版) 

一. 饼图数据外部显示

首先我们来看3张效果图:  内部显示 、 外部显示 、 3D效果-外部显示

      饼图的数据默认是内部显示的,当类别比较多的时候(上图只有 1,2,3,4 四种类别),数据内部显示就会很挤,看不清楚。此时我们应该将其它设置为外部显示, 如何设置为外部显示呢? 具体步骤如下:

1. 调出属性面板(按 F4 键)

2. 选中饼图中的数据标签

3. 在属性面板中找到 Position (位置) 属性, 将其设置为 Outside (外部显示)

      经过上面的步骤,饼图的数据在外部显示了(也就是上面效果图中的第2张图)。虽然此时数据已经在外部显示了,但是当类别变得很多的时候,可能依旧会让人产生混乱,因为你不知道每个数据到底对应的是哪个类别色块。如果 数据 与 类别色块 之间有线条连接那就最好了。如何让其出现线条连接呢? 很简单,只要开启 3D 模式就行了,步骤如下:

1. 选中圆饼

2. 右键 -> 3D效果

3. 勾选 启用 3D 

 

二. 将数值转为百分比显示

     数值转为百分比,计算公式无非就是 percent = value / total 。 如上面示例一,四个类别的数值分别为:76,39,6,25 。 将它们转为百分比则为: percent1 = 76 / (76+39+6+25) ,  percent2 = 39 / (76+39+6+25) ,  percent3 = 6 / (76+39+6+25) ,  percent4 = 25 / (76+39+6+25) 。知道了这个,我们来看具体步骤:

1. 选中饼图中的数据标签 -> 右键 -> 选择标签属性(Series Label Properties)

2. 点击常规页 Label data 后面的 fx 按钮 进行表达式设置

3. 输入如下表达式

=FormatPercent(Fields!Percent.Value / Sum(Fields!Percent.Value, "PercentDS"), 2)

      表达式的简单讲解, 首先是一个格式化函数 “FormatPercent()” , 通过名字就知道它是用来干嘛的了:将数字类型数据格式化为百分比,它会自动加上 % 符号。 它接收两个参数,第一个是要进行转换的数值,第二个则是要保留的小数位。我们这里第二个参数传入的是 2, 代表保留两位小数。 至于传入的第一个参数 Fields!Percent.Value / Sum(Fields!Percent.Value, "PercentDS") 。 很眼熟吧,这不就是我们上面所讲的百分比计算公式嘛,其中 “PercentDS” 是数据集名称。

4. 保存即可。 保存时可能会有一个小插曲,当 UseValueAsLabel 属性值为 true 时(其默认值就是为 true), 会弹出如下提示框:

      这是什么意思呢? 是这样的,我们首先要分清 value 和 label 。 实际上饼图的 value 只接收 数字类型的数据(即:int , long, double ...) , 如果你的数据集返回给饼图的数据不是 数字 类型(如:string),则饼图不会显示。 label 是用来展示饼图的 value 的。属性 UseValueAsLabel 为true, 则是说:直接将 饼图的 value 进行显示,不做任何加工。 但是我们上面的一系列操作明显是对 显示结果进行了加工的,我们显示的不再是直接的 value:76,39,6,25 。而是带有 % 符号的百分比数据,因此我们要将 UseValueAsLabel 设置为 false, 不直接显示 饼图 value。也就是说,如果弹出此提示框,我们直接选择 Yes 就行了。

三. 表格奇偶行背景色的设置

表格奇偶行的设置,其实就是为了美观,让人看起来更加的舒服,具体实现步骤如下:

1. 调出属性面板

2. 选择数据行(非 Header,要整行选取)

3. 在属性面板中找到背景色属性

4. 输入如下表达式

=iif(RowNumber(nothing) mod 2 = 0, "#DDDDDD", "White")

 

四. 打印导出的相关设置

    我们在对报表进行导出或打印是经常会遇到格式错乱的现象,原因是我们的相关设置没有做好。 导出打印通常都是针对 A4 格式的纸张而言的,所以我们在进行打印或导出之前要先对报表进行大小的设置。具体步骤如下:

1. 在报表外部空白处单击右键 -> 选择报表属性

2. 在页面设置页设置页面大小为 A4 (至于 是纵向还是横向,以及外边距等,根据你自己的需求进行设置)

3. 设置为 A4 后, 后面的宽高会自动变成 A4 相应的大小, 记住此 宽高 数值

4. 调出属性面板(按 F4 键)

5. 在报表内部空白处单击,然后找到属性面板中的 Size,将其 宽高 设置为等于或小于 A4 的数值(不能大于 A4 的宽高,否则打印或导出会出现错乱现象)。

五. 表格行号的设置

表格行号的设置很简单,主要还是借助 Rownumber() 函数,具体实现如下图:

六. 自定义函数的使用

有些时候内置的函数方法并不能满足我们的需求,那么我们就可以自己实现一个方法,然后调用它。  举个实例: 在之前的一次报表开发中,有这样一个需求: 文本框的背景色必须是动态的, 其背景色根据数据库中存有颜色的RGB的字符串的值来动态指定(如: "255,255,123")。 虽说背景色也是可以应用表达式的,但它只识别颜色名(如: Gray )和 16进制格式(如: #DDDDDD)的颜色值,并不支持RGB的颜色数值。这个时候就只能自己来实现一个设置RGB颜色的函数。具体步骤如下:

1. 在报表外部空白处右键单击 -> 选择报表属性

2. 选择 Code 菜单

3. 填入我们的自定义函数代码 (SSRS里面应用的是VB语法,因此要想写自定义函数,必须先学习VB语法)

4. 函数的调用:因为自定函数都是挂在 Code 下面的,所以调用的时候必须是 Code.SetRGB() 

原文地址:https://www.cnblogs.com/similar/p/5340913.html