设为首页 收藏本站
查看: 1368|回复: 0

[经验分享] ***S 2012 表达式 -- 介绍

[复制链接]

尚未签到

发表于 2018-6-16 08:15:27 | 显示全部楼层 |阅读模式
***S 2012 表达式 -- 介绍
  在***S设计报表时,界面提供了许多属性设置,可以用来修改项目的外观以及显示模式,而大多数的属性也都支持利用表达式的模式,只要看到属性值下拉菜单有出现“表达式…”或是“fx”的字样,就表示可以利用表达式的技术,根据逻辑判断以产生复杂的显示效果。
  目前***S支持VB.NET的表达式语法,我们可以使用这些表达式将已有的全局属性进行处理后生成要显示的值,或是可以通过表达式的撰写,根据条件动态指定报表的属性值。
  在介绍如何撰写***S的表达式之前,首先要介绍在***S中如何定义运算的数据。基本上,在***S提供五种可以在表达式使用的全局属性,分别为:
  n 字段(Fields)
  n 参数(Parameters)
  n 内置字段(Globals)
  n 报表条目(ReportItems)
  n 使用者(User)
  在***S中是使用标准的Visual Basic集合语法,来存取这些全局属性,以进行后续的运算。一般来说,有以下的四种形式:
  n Collection!ObjectName (默认的表示法)
  =User!Language
  n Collection.Item(“ObjectName”)
  =User.Item(“Language”)
  n Collection(“ObjectName”)
  =User(“Language”)
  n Collection.ObjectName (仅限于全局变量与使用者)
  =Globals.PageNumber
  这几种方式有何差别呢?一般是使用第一种申明模式,但是,如果希望利用参数来动态指定字段时,就不能使用默认的表示方法,因为字符串参数是不能更改字段名称的,此时,可利用第二或是第三种申明方式,将字段名称以字符串参数传入,就可以利用参数动态变更字段名称。
  ***S表达式的运算与一般VB.NET差不多,以下是几个撰写表达式要注意的地方:
  n 所有的字符串前后都必须加上双引号“””。
  n 全局属性引用时,属性名称有大小写的差异,举例来说,当“Fields!ProductName”写成“Fields!productName”时,会发生编译错误,不过全局属性集合名称(“fields!ProductName”是没问题的)以及运算函数则不受大小写限制。
  n 请注意运算函数所能处理的数据类型限制。
  由于***S支持所有VB.NET运算函数,以及Microsoft.VisualBasic、System.Convert与System.Math命名空间下的类,或是开启“Expression”选项,使用表达式编辑器来选择要使用的函数以及属性。
DSC0000.jpg

  在编辑器的上半部可输入想撰写的表达式;左下角则列出可使用的常量、参数、字段、函数等;下方的中间列表,则会随着开发者在左下角所选的类别,列出这类别下可用的值;最后,在右下角的描述方框,则是解释开发者在下方中所选函数的意义。
  常用的***S运算函数
  运算符/函数
  说明
  +
  前后为数字则为加法,前后为字符串则为连接符号
  -
  数值减法
  *
  乘法
  /
  除法,例如:100/3=33.333…
  \
  整数除法,例如:100\3=33
  MOD
  余数,例如:100MOD3=1
  ^
  次方,例如:4^2=16
  &
  字符串与数字的连接符号
  LEFT
  向左取出特定个数的字符,例如:LEFT(Fields!ProductName,1)
  RIGHT
  向右取出特定个数的字符RIGHT(Fields!ProductName,1)
  MID
  从指定位置取出特定数量的字符,MID(Fields!ProductName,2,1)
  InStr
  从左方开始搜寻特定字符串的位置,大小写敏感
  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)
  在以上函数中,最长被弄混的就是“+”以及“&”。前者是当连接在两个数字之间时,则执行加法,当连载两个字符串之间时,则将前后字符串相连。但是“&”符号则是无论前后是数据或是字符串,都会将它们是做字符串连接在一起。无论是“+”或者是“&”都只能处理字符串与时间之间的连接运算,如果是数字与时间,即使是“&”符号也会产生编译错误。
  常用的数据转换函数
  函数
  说明
  CBool
  转换为布尔值
  CDate
  转换为日期
  CCur
  转换为货币单位
  CDbl
  转换为双精确度浮点数
  CDec
  转换为十进制数值
  CInt
  转换为整数
  CLng
  转换为LONG数值
  CSng
  转换为单精度浮点数
  CStr
  转换为字符串
  在条件式中,常用=、<>、>=、<=、and、or等比较运算符都可以使用,同时也支持VB.NET中的判断函数。
  常用的判断函数
  函数
  说明
  IsNothing
  判断是否为空值
  IsNumeric
  判断是否为数值
  IsDate
  判断是否为日期
  要注意的是IsNull是旧的VB中判断空值的函数,在***S中已经不再适用,而要更换为IsNothing。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-524395-1-1.html 上篇帖子: ***S 2012 仪表 -- 关键绩效指标 下篇帖子: Windows Server 2012 和 System Center 2012 SP1,Virtual Machine Manager 中启用的软件定义的网络
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表