一、常用的SSRS原始函数可以打开文本框的表达式中看到,如图1

图1

如下为SSRS中设计报表时常用的运算函数:

运算符/函数

说明

+

前后位数字则为加法,前后为字符串则为链接符号

-

数值减法

*

乘法

/

除法,例如:100/33 = 33.333...

\

整数除法,例如:100\3 = 33

MOD

求余,例如:10 MOD 3 = 1

^

次方,例如:4^2 = 16

&

字符串与数字的链接符号

LEFT

向左取出特定个数的字符,例如:LEFT(Fields!ProductName,1)

RIGHT

向右取出特定个数的字符,例如:RIGHT(Fields!ProductName,1)

MID

从指定位置取出特定数量的字符,例如:MID(Fields!ProductName,2,1)

InStr

从左方开始搜寻特定字符串的位置,大小写敏感

InStrRev

从左方开始搜寻特定字符串的位置,大小写敏感

Replace

Replace(String,Substring1,Substring2),将字符串中特定子字符串替换

LEN

返回字符串长度,例如:LEN(Fields!ProductName)

YEAR

取出时间类型数据的公元年份数值,例如:=YEAR(Globals!ExecutionTime)

MONTH

取出时间类型数据的月份数值,例如: =MONTH(Globals!ExecutionTime)

DAY

取出时间类型数据的天数值,例如: =DAY(Globals!ExecutionTime)

DATEDIFF

返回两个日期相隔区间,DateDiff(dateinterval,date1,date2)

以上函数中基本上和SQLSERVER 中的函数的用法差不多,另外最常被弄混的就是“+”以及"&"。前者是当连接在两个数字之间时,则执行加法;当在两个字符串之间时,则将前后字符串相连。但是“&”符号则是无论前后是数字还是字符串,都会将它们视作字符串连接在一起。无论是“+”或者是“&”都只能处理字符串和时间之间的连接运算;如果数字和时间,即使是“&”符号也会产生编译错误。

以下为VB.NET中常用的数据转换函数

函数

说明

CBool

转换为布尔值

CDate

转换为日期

CCur

转换为货币单位

CDbl

转换为双精度浮点数

CDec

转换为十进制书

CInt

转换为整数

CLng

转换为LONG数值

CSng

转换为单精度浮点数

Cstr

转换为字符串

在条件表达式中,常用的=、<>、>=、<=、and、or等比较运算符都可以使用,同时也支持VB.NET中的判断函数,下表为常用的判断函数:

函数

说明

IsNothing

判断是否为空值

IsNumeric

判断是否为数值

IsDate

判断是否为日期

二、颜色管理

在以下案例中,我们将月销量低于100笔的数据格,利用存储数据格底色以及字型的属性变更,以提醒查看报表者注意。

【Reporting Services 报表开发】— 矩阵的使用 的图23的基础上处理,改成如下,如图2

图2

1.请将要改变底色的单元格选中,并按F4,在属性窗口中选中BackgroundColor属性,并在下拉框中选择“表达式”。如图3

图3

2.接着,在编辑的表达式窗口上方方格内输入,如图4:

=IIF(Sum(Fields!SALES_QTY.Value) < 100 ,"Blue","White")

=IIF(Sum(Fields!SALES_QTY.Value) < 100 and IsNothing(Sum(Fields!SALES_QTY.Value)) = 0,"Blue","White")

图4

这表示销售量(记得加上Sum函数表示汇总值)低于100件的背景色改为蓝色,其余维持原色(白色)。上方语句不管是否为空值,至于下方的语句是排除为空值的数据格,各位可以依照需求来判断使用哪段表达式:IIF()函数的用法如下:

IIF(判断条件式,True返回值,False返回值)

也可以写成“巢状IIF”,表示则销量低于100件为蓝色,100-199件为绿色,其余为白色

=IIF(Sum(Fields!SALES_QTY.Value) < 100,"Green",
IIF(Sum(Fields!SALES_QTY.Value) < 200,"Blue","White"))

TIP 巢状条件

虽然IIF可以写成巢状条件式,但这种写法实在很繁琐且难以维护,因此,建议利用以下Choose以及Switch语法。

=Choose(Datepart("w",Fields!BirthDate.Value),"第一","第二","第三","第四","第五","第六","第七")

=Switch(Sum(Fields!SALES_ATY.Value) < 100,"Green",Swich(Sum(Fields!SALES_ATY.Value) < 200,"Blue","White"))

3.切换预览,可以发现销量低于100件以下的商品会被蓝色标示出来,透过色彩的变化,可以让使用者能够立即察觉数据的异常。如图5

图5

参考书籍《SQL Server 2008 R2  Reporting Services 报表服务》

需要下载的数据库和SQL脚本:http://www.wsbookshow.com/bookshow/kjlts/jsj/kfzj/11395.html 的图书详情—>下载资源

【Reporting Services 报表开发】— 表达式的更多相关文章

  1. 【Reporting Services 报表开发】— 交互式报表

    我们知道,界面是人与系统间的对话方式,当使用者面对的是冷冰冰的界面,不但会造成使用者对于系统的热情减低,也会因为不便而产生诸多抱怨.尤其像报表时企业内几乎每日都会使用到的工具,因此,如何让使用者可以再 ...

  2. 【Reporting Services 报表开发】— 页码编列

    一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH4 二.在报表文件 ...

  3. 【Reporting Services 报表开发】— 矩阵的使用

    矩阵,相较于数据表示一维的数据,只能指定固定的数据列,来呈现动态的明细数据行,所以,它可以说是种二维的数据展现形式,让我们能够很容易地从数据行和数据集的交替中查看对应的汇总信息.像SQL Server ...

  4. 【Reporting Services 报表开发】— 如何根据明细的行数实现分页(比如每隔5行分页)

    一.新建报表:对于初学者可以参考我前面的文章[Reporting Services 报表开发]— 总结 如图1: 图 1 二.选择 new_name文本框—>添加组—>选择行组中的父组.具 ...

  5. 【Reporting Services 报表开发】— 数据表的使用

    一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH3 二.在报表文件 ...

  6. 【Reporting Services 报表开发】— 级联式参数设置

    级联式参数设置 再清楚的菜单,只要遇到选择项目一多的时候,难免会让人眼花缭乱,而找不到该选的选项.举例来说,像是零售业动辄万种商品品类,如果希望快速的选择到希望查看的产品品类时,就需要更有效率的搜索方 ...

  7. 【Reporting Services 报表开发】— 数据表存储格式修改

    文本框 Format属性:日期:输入d(表示简易日期).2007/5/1 0:00:00   输入d之后 变成 2007/5/1 金额:输入C0(表示货币),系统会根据设定值产生对应的货币符号,至于0 ...

  8. 【Reporting Services 报表开发】— 如何设置报表分页列标题每一页都显示

    一.打开已经开发好的报表ReportTest,选择列组下的高级模式—>选择行组的静态(会关联列标题订单编号),修改下面的属性: 1.Hidden:False 2.FixedData:True 3 ...

  9. 【Reporting Services 报表开发】— 总结

    一.环境搭建:安装SQL Server 2008 R2或SQL Server 2012过程略,这里我安装的是SQL Server 2012. 二.新建报表项目: 1.打开Visual Studio 2 ...

随机推荐

  1. [数据结构]RMQ问题小结

    RMQ问题小结 by Wine93 2014.1.14   1.算法简介 RMQ问题可分成以下2种 (1)静态RMQ:ST算法 一旦给定序列确定后就不在更新,只查询区间最大(小)值!这类问题可以用倍增 ...

  2. Js运算符优先级

    1.. [] {} 提取属性与函数调用 2. delete new typof + - ! 一元运算符 3.  * / %    乘法.除法.求余 4. + - 加法/连接.减法 5.>= &l ...

  3. magento -- 添加中国省份列表

    magento本身的数据库里不包含中国的省份信息,你可以执行以下的SQL语句来添加 添加到directory_country_region表 INSERT INTO  `directory_count ...

  4. iOS-代理

    1.协议是一组通讯协议,一般用作两个类之间的通信. 2.协议声明了一组所有类对象都可以实现的接口. 3.协议不是类,用@protocol关键字声明一个协议. 4.与协议有关的两个对象,代理者和委托者. ...

  5. 四则运算app工程的进展

    深入分析五个四则运算app: 1.ALM-Addition 缺点:版本是英文版,不利于孩子们弄懂.  用选择题的方法来选择正确的答案,固然有运气答对的成分,不利于统计真实的水平. 优点:有图标统计答题 ...

  6. Xcode 断点调试,取消直接进入到汇编语言界面处理

    Xcode 上部的菜单拦: Product -> Debug Wokflow  下的菜单中,将“ Always Show Disassembly ”的勾去掉.(勾上的意思是用汇编语言进行Debu ...

  7. C# 控件不刷新问题

    /********************************************************************** * C# 控件不刷新问题 * 说明: * 当网络连接出问 ...

  8. C++的虚函数表

    这里的例子全部来自陈皓的C++ 虚函数表解析,经过修改的. 编译器:g++ (Ubuntu 4.9.2-10ubuntu13) 4.9.2 环境:ubuntu 15.04  64位系统(地址占8字节) ...

  9. 《JS高程》基本类型和引用类型的值学习笔记

    ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 创建方式类似:创建一个变量并为其赋值. (1)基本类型值和引用类型值比较 基本类型值 引用类型值 简单的数据段 可能由 ...

  10. win7 64 下安装ubuntu14.04

    win7下安装ubuntu方法: * 使用win7下的自带的分区工具给ubuntu留出磁盘空间:计算机 -> 右键菜单选择管理 -> 选择磁盘管理->选中最后的那个磁盘->右键 ...