zoukankan      html  css  js  c++  java
  • 【Reporting Services 报表开发】— 表达式

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

     

                                                   图1

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

    运算符/函数

    说明

    +

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

                          -

    数值减法

    *

    乘法

    /

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

    整数除法,例如:1003 = 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 的图书详情—>下载资源

                 

  • 相关阅读:
    AWK 学习手札, 转载自lovelyarry
    Perl 学习手札之一: introduction
    开发者必看:iOS应用审核的通关秘籍
    Perl 学习手札之三: General syntax
    Perl 学习手札之二: Guide to experienced programmers
    RepotService添加空格符
    CSMS2软件架构
    关于Oracle的动态查询
    CSMS2公共方法
    CSMS2绑定数据
  • 原文地址:https://www.cnblogs.com/allenhua/p/3776475.html
Copyright © 2011-2022 走看看