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"), )

表达式的简单讲解, 首先是一个格式化函数 “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 = , "#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()

SSRS 报表开发小技巧的更多相关文章
- Windows统一平台: 开发小技巧
Windows统一平台: 开发小技巧 技巧一: 在手机端拓展你应用的显示区域.(WP8.1中也适用) 对于Windows Phone系统的手机, 手机屏幕最上方为系统状态栏(System Tray), ...
- flex开发小技巧集锦
关于flex开发网上有非常多的相关信息介绍,因此我们要想学习关于flex开发的知识信息技能是一件非常简单和方便的事情.而针对于flex开发小编要告诉大家的是一些flex开发小技巧.利用这些小技巧能够有 ...
- TP开发小技巧
TP开发小技巧原文地址http://wp.chenyuanzhao.com/wp/2016/07/23/tp%E5%BC%80%E5%8F%91%E5%B0%8F%E6%8A%80%E5%B7%A7/ ...
- 移动Web开发小技巧
移动Web开发小技巧 添加到主屏后的标题(IOS) name="apple-mobile-web-app-title" content="标题"> 启用 ...
- BizTalk开发小技巧
BizTalk开发小技巧 随笔分类 - Biztalk Biztalk 使用BizTalk实现RosettaNet B2B So Easy 摘要: 使用BizTalk实现RosettaNet B2B ...
- Java开发小技巧(三):Maven多工程依赖项目
前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...
- iOS开发小技巧 - UILabel添加中划线
iOS开发小技巧 遇到的问题: 给Label添加中划线,然后并没有效果 NSString *str = [NSString stringWithFormat:@"合计金额 ¥%.2f&quo ...
- PHP开发小技巧②—实现二维数组根据key进行排序
在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果:但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来 ...
- PHP开发小技巧③—实现多维数组转化为一维数组
在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常 ...
随机推荐
- thuwc2019总结
275,是我的自己的估分 而350,是面试线 就发挥而言,这次的发挥相当糟糕,第一天选择全场打暴力而不打签到题正解,第二天因A题思路想偏造成2h额外时间花费.第二题与第三题之间,我选择了难打的第三题而 ...
- django 的ajax 请求,使用form的验证机制。
所有的form都需要在后台验证,前台验证是不可靠的,django的验证是后台验证,前台提示错误信息. js验证是在前台的,无需发送消息给后台,但安全性不可靠,强调的是用户体验. 要求,使用弹出框,弹出 ...
- QuantLib 金融计算——基本组件之 Currency 类
目录 QuantLib 金融计算--基本组件之 Currency 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Cu ...
- (转)rpm2cpio和cpio
原文:https://blog.csdn.net/jubincn/article/details/6687550 rpm2cpio命令:将rpm格式的文件转为cpio格式的文件.rpm是linux中常 ...
- C++运算符重载三种形式(成员函数,友元函数,普通函数)详解
首先,介绍三种重载方式: //作为成员函数重载(常见) class Person{ Private: string name; int age; public: Person(const char* ...
- 关于 PHP 开放 enable_dl 函数利用 图片Disable_functions
三篇引文地址: 利用PHP扩展模块突破Disable_functions执行命令 如何编写PHP扩展 php dl函数(详细解释)
- Android中实时预览UI和编写UI的各种技巧
一.啰嗦 之前有读者反馈说,你搞这个所谓的最佳实践,每篇文章最后就给了一个库,感觉不是很高大上.其实,我在写这个系列之初就有想过这个问题.我的目的是:给出最实用的库来帮助我们开发,并且尽可能地说明这个 ...
- nginx 学习笔记(4) Connection处理方法
nginx支持connection的多种处理方法.nginx运行的平台确定了可用的处理方法. 在特定平台下connection的多种处理方法中,nginx会自动选择一种最有效的方法.然而,如果需要,你 ...
- BEA-141150 - An error occurred while preparing application component uri of application application with HTTP response responseCode: message
网上查询的 Cause:This is either because the resource it self is not available on the administration serve ...
- H5开发过程中修复的bug记录
从2016年8月1日开始真正意义上的修复bug,也是自己开发之路的开端,希望在这里记录自己修bug过程中遇到的问题及解决方法,待能够自己开发需求的时候,计划记录开发新需求过程中遇到的问题,并且记录自己 ...