你的位置:首页 > 数据库

[数据库]SSRS(RDLC)报表开发的一点小技巧


说明:  

开发工具为: SQL Server Data Tools     开发环境为: SQL Server 2012 

 

一. 饼图数据外部显示

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

     

 

默认是内部显示, 如何设置为外部显示呢?如下图:

 

设置好后数据是显示在外部了,但并没有出现数据和图之间的连接线条。想要显示线条,那么就要开启3D效果,步骤如下:

 

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

如示例一中的数值分别为: 76 , 39 ,  6 , 25 。 如果将其转为百分比则为: 76 / (76+39+6+25) , 39 / (76+39+6+25) , 6 / (76+39+6+25) , 25 / (76+39+6+25) 。 也就是说我们要先得到总和,然后再用单个值去除以总和。具体实现如下:

 

步骤一 >  我们要修改 Series Label 的属性, 而不是去修改饼图的 Values。  因为饼图的Values是只接受数字类型的值,如果你设置的值是字符类型,那么图饼将不会显示。 而百分比形式的数据带有 % 号,肯定是字符类型的。因此要手动设置展示的 Label, 而不是去设置Values。

 

步骤二 > 表达式的书写。

 

 

此时你点保存按钮会弹出一个提示框,如下图:

这个提示框的意思就是要将 UseValueAsLabel 属性设置为False, 我们上面Label Data 里面写的表达式才会生效。 因为默认是直接将从数据库中取出的值进行展示的(数字类型),而现在我们手动设置了展示的 Label Data, 所以要将UseValueAsLabel 设置为False, 不使用直接从数据库中取出的值。

 

步骤三 >  把数据设置为百分比格式。

 

其实我们也可以省略步骤三, 直接将步骤二中的表达式写成如下形式就行了

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

 

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

 

实现步骤如下:

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

 

 

四. 打印导出的相关设置

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

 

步骤一 >

步骤二 >

 

步骤三 >

 

五. 表格行号的设置

实现如下图:

 

六. 自定义函数的使用

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

 

我们的自定义函数写在哪?

步骤一 >

 

步骤二 >

 

因为SSRS里面应用的是VB语法,因此要想写自定义函数,必须先学习VB语法。 实现 RGB 颜色设置的函数代码如下:

Public Function SetRGB(paramValue As String) As String    Dim StrRGB() As String  StrRGB = Split(paramValue , ",")  SetRGB = String.Format("#{0:x6}", RGB(CInt(StrRGB(0)), CInt(StrRGB(1)), CInt(StrRGB(2))))End Function

 

函数定义好后,我们该如何调用呢?

因为自定函数都是挂在 Code 下面的,所以调用的时候必须是 Code.SetRGB() 。  运行之后的效果如下图: