Visual Basic 函数

SunSystems Reporting Services 内您可以使用一系列的 Visual Basic (VB) 函数。以下只是可用函数类型的一个示例:

  • 常规
  • 日期
  • 决策

常规函数

常用的常规函数和运算符有:

常规 VB 函数 描述
ABS(表达式) 返回表达式的绝对值。
MOD 可以使用表达式 RowNumber(Nothing)MOD 2 来确定数据集的奇数和偶数行。
MID, LEFT, RIGHT, LEN 和 TRIM 以下是管理文本数据的字符串函数。
LCASE, UCASE 将字符串值转换成大写或小写。
FORMAT(表达式, "标准") 将数字字符串的格式设为标准数字格式。
CSTR, CDATE, CDBL 将表达式转化为字符串、日期或双精度数字。
注意:可能经常需要通过在 CDBL 函数中包含 IF 语句,转换能返回数字值的复杂 IF 语句。
ME.Value 该表达式返回文本框的当前值,该表达式在[可视性或条件格式]表达式中很有用,其中条件取决于文本框值。

数据函数

最常使用的日期函数有:

数据函数 描述
DAY(日期) 返回 1 到 31 的一个整数值,表示一月的第几天。
MONTH(日期) 返回 1 到 12 的整数值,表示月份。
MONTHNAME(日期) 返回月份的名称,例如:九月。
WEEKDAY(日期) 返回 1(表示星期日)到 7(表示星期六)的整数值。
WEEKDAYNAME(日期) 返回工作日的名称,例如:星期二。
YEAR(日期) 返回 1 到 9999 的整数值,表示指定日期所在的年份。
DATEPART(“间隔”,日期) 返回包含给定[日期]值的指定组件的整数值,其中间隔为:
  • d:天(每月的)
  • y:天(每年的)
  • h:小时
  • n:分钟
  • m:月份
  • q:季度
  • s:秒
  • w:周几(每周的星期几)
  • ww:工作周(每年的周,1 - 53)
  • yyyy:年份
DATEADD(“间隔”、数字、日期) 返回包含日期和时间值的[日期]值,已向其添加指定的时间间隔为:
  • d:天;被截断为整数值
  • y:天(每年的);被截断为整数值
  • h:小时;舍入为最接近的毫秒
  • n:分钟;舍入为最接近的毫秒
  • m:月份;被截断为整数值
  • q:季度;被截断为整数值
  • s:秒;舍入为最接近的毫秒
  • w:天(每周的);被截断为整数值
  • ww:周(每年的);被截断为整数值
  • yyyy:年份;被截断为整数值
DATEDIFF("间隔", Date1, Date2) 返回一个[长]值,表示[日期 2]和[日期 1]在时间间隔单位上的区别,其中间隔为:
  • d:天
  • y:天(每年的,处理方法同[天])
  • h:小时
  • n:分钟
  • m:月份
  • q:季度
  • s:秒
  • w:周
  • ww:每年的工作周(使用一周的第一天)
DATESERIAL(年,月,日) 其中
  • [年]为必填。是从 1 到 9999 的整数表达式。但也可以接受低于此范围的值。如果[年]在 0 到 99 之间,则被解析为 1930 到 2029。如果[年]小于 1,从当前年份中减去。
  • [月]为必填。是从 1 到 12 的整数表达式。但也可以接受此范围之外的值。[月]的值被 1 抵消,应用到被计算年的一月。换句话说,(月份 - 1)被添加到一月。如果需要可以重新计算年。下面的结果说明了该影响:
    • 如果[月]为 1,则结果是被计算年的一月。
    • 如果[月]为 0,则结果是前一年的十二月。
    • 如果[月]为 -1,则结果是前一年的十一月。
    • 如果[月]为 13,则结果是下一年的一月。
  • [日]为必填。是从 1 到 31 的整数表达式。但也可以接受此范围之外的值。[月]的值被 1 抵消,应用到被计算年的一月。换句话说,(日 - 1)被添加到每月的第一天。如果需要,可以重新计算月和年。下面的结果说明了该影响:
    • 如果[月]为 1,则结果是被计算年的一月。
    • 如果[日]为 0, 则结果是前一个月的最后一天。
    • 如果[日]为 -1, 则结果是前一个月的倒数第二天。
    • 如果[日]超过了当前月的月末,则结果为下个月的相应日期。例如:如果[月]是 4,[日]是 31,则结果是 5 月 1 日。

下面的表达式也基于[标记]值返回三个值之一,但使用的是 Switch 函数,会返回与被评估为[真]的系列中第一个表达式相关联的值:

=Switch(Fields!Marker.Value >= 7, "Green", Fields!Marker.Value >= 5, "Amber", Fields!Marker.Value < 5, "Red")

使用带有计数器的表达式

[报表计数器]功能允许您在开始运行报表时使用表达式指定一个起始数字,并在处理每个文档时递增该数字。指定起始号码是在运行时作为参数输入,还是从数据字段值中检索。

可以根据字段值的改变递增计数器,并指定只有在运行时应用了指定筛选器时才能应用。

创建了计数器之后,就可以将它添加到报表。选择视图 > 特殊字段可在特殊字段浏览器中显示可用的计数器,然后将所需的计数器拖放到报表上。