说明:

开发工具为: 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 报表开发小技巧的更多相关文章

  1. Windows统一平台: 开发小技巧

    Windows统一平台: 开发小技巧 技巧一: 在手机端拓展你应用的显示区域.(WP8.1中也适用) 对于Windows Phone系统的手机, 手机屏幕最上方为系统状态栏(System Tray), ...

  2. flex开发小技巧集锦

    关于flex开发网上有非常多的相关信息介绍,因此我们要想学习关于flex开发的知识信息技能是一件非常简单和方便的事情.而针对于flex开发小编要告诉大家的是一些flex开发小技巧.利用这些小技巧能够有 ...

  3. 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/ ...

  4. 移动Web开发小技巧

    移动Web开发小技巧 添加到主屏后的标题(IOS) name="apple-mobile-web-app-title" content="标题"> 启用  ...

  5. BizTalk开发小技巧

    BizTalk开发小技巧 随笔分类 - Biztalk Biztalk 使用BizTalk实现RosettaNet B2B So Easy 摘要: 使用BizTalk实现RosettaNet B2B ...

  6. Java开发小技巧(三):Maven多工程依赖项目

    前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...

  7. iOS开发小技巧 - UILabel添加中划线

    iOS开发小技巧 遇到的问题: 给Label添加中划线,然后并没有效果 NSString *str = [NSString stringWithFormat:@"合计金额 ¥%.2f&quo ...

  8. PHP开发小技巧②—实现二维数组根据key进行排序

    在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果:但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来 ...

  9. PHP开发小技巧③—实现多维数组转化为一维数组

    在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常 ...

随机推荐

  1. zabbix数据库表结构解析

     下面开始介绍: 1.添加监控表结构详解 (1)hosts,存储被监控的机器的信息,表结构如下: (2)items (3)hosts_templates,存储机器和模版或者模版和模版之间的关系 由于模 ...

  2. Java之集合(十八)DelayQueue

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7493735.html 1.前言 本章介绍阻塞队列DelayQueue,这是一个无界阻塞队列.其存储延时的元素,只 ...

  3. 利用wget配合bash脚本同时下载多个文件

    先把需要下载的文件写入到一个文件中,命名为urls.txt,比如: http://blog.is36.com/a.jpg http://blog.is36.com/b.jpg http://blog. ...

  4. Android 开发服务类 03_ServletForGETMethod

    接收并处理用户通过 GET 方式上传的数据,一般小于 2K,并且安全性要求不高. package com.wangjialin.internet.servlet; import java.io.IOE ...

  5. react config test env with jest and create-react-app 1

    /.babelrc { "presets": ["@babel/preset-env","@babel/preset-react"], &q ...

  6. java学习-get和post请求

    摘要 看完本文可以知道,使用java原生编写get/post请求的步骤,进行网络请求时应该注意的地方. 这里使用java自带的HttpUrlConnection对象进行网络请求, 请求步骤大致分为五步 ...

  7. 分布式处理与大数据平台(RabbitMQ&Celery&Hadoop&Spark&Storm&Elasticsearch)

    热门的消息队列中间件RabbitMQ,分布式任务处理平台Celery,大数据分布式处理的三大重量级武器:Hadoop.Spark.Storm,以及新一代的数据采集和分析引擎Elasticsearch. ...

  8. 分布式ID生成方法-趋势有序的全局唯一ID

    一.需求缘起 几乎所有的业务系统,都有生成一个记录标识的需求,例如: (1)消息标识:message-id (2)订单标识:order-id (3)帖子标识:tiezi-id 这个记录标识往往就是数据 ...

  9. nginx 学习笔记(4) Connection处理方法

    nginx支持connection的多种处理方法.nginx运行的平台确定了可用的处理方法. 在特定平台下connection的多种处理方法中,nginx会自动选择一种最有效的方法.然而,如果需要,你 ...

  10. java中线程同步问题

    先不多说,直接上个例子,著名的生产者消费者问题. public class ProducerConsumer { public static void main(String[] args) { Sy ...