目录
运算符
2
统计函数
2
求和:Sum(field, start, end)
2
条件求和:SumIf(field, cond, start, end)
2
查询数据:Get(field, cond, start, end)
3
求平均:Avg(field, start, end)
3
条件求平均:AvgIf(field, cond, start, end)
3
条件计数:CountIf(cond, start, end)
3
最大值:Max(field, start, end)
3
最小值:Min(field, start, end)
3
流程控制函数
3
单条件执行:If(cond, proc_true, proc_false)
3
分支执行:Choose(index, proc1, proc2, proc3, …)
3
多条件执行:Switch(cond1, proc1, cond2, proc2, cond3, proc3, …)
3
文本处理函数
4
输出字符串:Str(exp)
4
转成中文大写金额:CurrencyCN(exp)
4
数字定点输出:Fixed(num, digits)
4
数字前置补零:Prefixed(num, len)
4
格式化数字输出:FormatNum(exp, format)
4
格式化日期输出:FormatDate(exp, format)
4
连接字符串:Concat(text1, text2, …)
4
获取字符串长度:Len(exp)
4
查找字符串:Find(text, within, start)
4
替换字符串:Replace(text, within, replace)
5
截断字符串:Substr(text, start, len)
5
截断字符串2:Substr2(text, start, end)
5
分割字符串:Split(text, delim)
5
根据长度分割字符串:SplitAtLen(text, len)
5
合并成字符串:Join(tokens, sep)
5
小括号(左):BracketL()
5
小括号(右):BracketR()
5
数学函数
5
转成数字:Num(exp)
5
转成整数:Int(exp)
5
绝对值:Abs(exp)
5
相反数:Opp(exp)
5
随机数:Rand(min, max)
5
随机整数:RandInt(min, max)
6
获取整数部分位数:LenInt(exp)
6
上限值:Ceil(exp, digits)
6
下限值:Floor(exp, digits)
6
四舍五入:Round(exp, digits)
6
日期函数
6
创建日期:Date(year, month, day, hour, minute, second)
6
获取年份:Year(date)
6
获取月份:Month(date)
6
获取天数:Day(date)
7
增加年数:AddYears(date, years)
7
增加月数:AddMonths(date, months)
7
增加天数:AddDays(date, days)
7
获取星期天数:DayNum(date, cn)
7
数据源函数
7
创建序列:Series(field,…)
7
读取数据值:GetValue(field, row)
7
获取数组长度:Len(exp)
7
创建数组:Array(item1, item2, …)
7
杂项函数
8
空值:Null()
8
布尔值真:True()
8
布尔值非:False()
8
总行数:RowCount()
8
行索引:RowIndex()
8
行号:RowNumber()
8
当前值:Val()
8
运算符
运算符 |
说明 |
( ) |
左、右括号 |
+ |
加:exp1 + exp2 或 正号 +exp 或 字符串连接 |
- |
减:exp1 – exp2 或 负号 –exp |
* |
乘:exp1 * exp2 |
/ |
除:exp1 / exp2 |
% |
取余:exp1 % exp2 |
^ |
幂运算:exp1 ^ exp2 |
== |
等于:exp1 == exp2 |
!= |
不等于:exp1 != exp2 |
> |
大于:exp1 > exp2 |
>= |
大于等于:exp1 >= exp2 |
< |
小于:exp1 < exp2 |
<= |
小于等于:exp1 <= exp2 |
&& |
并且:exp1 && exp2 |
|| |
或者:exp1 || exp2 |
! |
取非:!exp |
""或‘‘ |
字符串定义,字符内部不能出现”和’,要用指定的函数输出 |
#Name |
访问当前行字段Name的值 |
@Name |
访问报表参数Name的值 |
#对象.属性 |
访问当前行对象属性值 |
@对象.属性 |
访问报表参数对象属性值 |
统计函数
求和:Sum(field, start, end)
说明:求和。start,end是可选参数,当没有start,end参数时默认累加所有行。
例子:
Sum(#金额)
Sum(#金额,GroupStartIndex(),GroupEndIndex())
Sum(#金额,0,RowIndex())
Sum(#金额,GroupStartIndex(),GroupStartIndex()+GroupRowIndex())
条件求和:SumIf(field, cond, start, end)
说明:统计满足条件的和。start,end是可选参数,当没有start,end参数时默认累加所有符合条件的行。
例子:
SumIf(#金额, #金额>10)
SumIf(#金额, #金额>10,GroupStartIndex(),GroupEndIndex())
SumIf(#金额, #金额>10,0,RowIndex())
SumIf(#金额, #金额>10,GroupStartIndex(),GroupStartIndex()+GroupRowIndex())
查询数据:Get(field, cond, start, end)
说明:查询符合条件cond的第一条数据,并返回field的值。start,end是可选参数,当没有start,end参数时默认累加所有符合条件的行。
例子:
Get(#金额, #金额>10)
Get(#金额, #金额>10,GroupStartIndex(),GroupEndIndex())
求平均:Avg(field, start, end)
说明:求平均。start,end是可选参数,当没有start,end参数时默认求所有行的平均值。
例子:
Avg(#金额)
Avg(#金额,GroupStartIndex(),GroupEndIndex())
条件求平均:AvgIf(field, cond, start, end)
说明:求满足条件的行的平均值。start,end是可选参数,当没有start,end参数时默认求所有符合条件的行的平均值。
例子:
AvgIf(#金额, #金额>10)
AvgIf(#金额, #金额>10,GroupStartIndex(),GroupEndIndex())
条件计数:CountIf(cond, start, end)
说明:统计满足条件的行的数量。start,end是可选参数,当没有start,end参数时默认统计所有符合条件的行的数量。
例子:
CountIf(#金额>10)
CountIf(#金额>10,GroupStartIndex(),GroupEndIndex())
最大值:Max(field, start, end)
说明:统计最大值。start,end是可选参数,当没有start,end参数时默认统计所有行的最大值。
例子:
Max(#金额)
Max(#金额,,GroupStartIndex(),GroupEndIndex())
最小值:Min(field, start, end)
说明:统计最小值。start,end是可选参数,当没有start,end参数时默认统计所有行的最小值。
例子:
Min(#金额)
Min(#金额,GroupStartIndex(),GroupEndIndex())
流程控制函数
单条件执行:If(cond, proc_true, proc_false)
说明:当cond为true时,执行proc_true,否则执行proc_false。
例子:
If(#金额>100, #金额*0.9, #金额)
分支执行:Choose(index, proc1, proc2, proc3, …)
说明:根据index的值,执行相应的procN。index以0开始,procN参数的数量应该与index的取值数量相同。
例子:
Choose(#类型, 客户,供货商,其他)
多条件执行:Switch(cond1, proc1, cond2, proc2, cond3, proc3, …)
说明:如果condN为true,则执行相对于的procN。condN,procN参数成对出现。
例子:
=Switch(#数值<=0,Str(),#数值<=1,#数值*80,#数值<=2,#数值*90)
文本处理函数
输出字符串:Str(exp)
说明:输出字符串。一些关键字符可以通过该函数输出。
例子:
Str()
Str(#类型)
Str( )
Str( ‘",“<> )
Str(+-*/,())
转成中文大写金额:CurrencyCN(exp)
说明:转成中文大写金额。
例子:CurrencyCN(#金额)
数字定点输出:Fixed(num, digits)
说明:输出数字字符串。digits大于 0(零),则将数字四舍五入到指定的小数位;digits等于 0,则将数字四舍五入到最接近的整数。digits小于 0,则在小数点左侧进行四舍五入。digits是可选参数,默认值是0,digits应该在0~20(含)范围内。
例子:
Fixed(#金额,2)
Fixed(#金额,Opp(2))
数字前置补零:Prefixed(num, len)
说明:输出数字字符串,当数字字符串长度小于参数len时前面补零。len是可选参数。
例子:Prefixed(#月份,2)
格式化数字输出:FormatNum(exp, format)
说明:输出格式化字符串。
format的取值:
保留n位小数:fn,例如:f0,f2
金额保留n位小数:cn,例如:c2
千分符保留n位小数:#,#n,例如:Str(#,#2)
金额千分符保留n位小数:c#,#n,例如:Str(c#,#2)
最多保留n位小数: 0.####,任意个#
百分比保留n位小数:pn,例如: p0,p1
例子:
FormatNum(#金额, c2)
格式化日期输出:FormatDate(exp, format)
说明:输出格式化字符串。
format的取值:
日期(yyyy年MM月dd日):Str(d)
日期(yyyy-MM-dd):Str(yyyy-MM-dd)
日期(yyyy-MM-dd HH:mm:ss):Str(yyyy-MM-dd HH:mm:ss)
日期(yyyyMMdd):Str(yyyyMMdd)
日期(yyyyMMddHHmmss):Str(yyyyMMddHHmmss)
例子:
FormatDate(#日期,Str(d))
连接字符串:Concat(text1, text2, …)
说明:连接多个字符串。
例子:Concat(#商品,Str( ),#规格)
获取字符串长度:Len(exp)
说明:获取字符串长度。
例子:Len(#类型)
查找字符串:Find(text, within, start)
说明:查找字符串。start是可选参数,没有start时默认从0索引出开始查找。
例子:Find(#备注,货款)
替换字符串:Replace(text, within, replace)
说明:替换字符串。
例子:Replace(#备注,货款,Str())
截断字符串:Substr(text, start, len)
说明:截断字符串。len是可选参数,没有len时默认截断到字符串最后。
例子:Substr(#备注,0,2)
截断字符串2:Substr2(text, start, end)
说明:截断字符串。end是可选参数,没有end时默认截断到字符串最后。
例子:Substr2(#备注,0,2)
分割字符串:Split(text, delim)
说明:分割字符串。
例子:
Split(#备注, ‘/‘)
根据长度分割字符串:SplitAtLen(text, len)
说明:根据长度len分割字符串。
例子:
SplitAtLen(#备注, 4)
合并成字符串:Join(tokens, sep)
说明:合并成字符串。sep是可选参数,默认是空字符串。
例子:
Join(Split(#备注, ‘/‘))
小括号(左):BracketL()
说明:输出左小括号。小括号是表达式关键字,不能直接使用,要使用该函数输出。
例子:
BracketL()
小括号(右):BracketR()
说明:输出右小括号。小括号是表达式关键字,不能直接使用,要使用该函数输出。
例子:
BracketR()
数学函数
转成数字:Num(exp)
说明:转成数字。
例子:Num(#类型)
转成整数:Int(exp)
说明:转成整数。
例子:Int(#类型)
绝对值:Abs(exp)
说明:获取数字绝对值。
例子:Abs(#金额)
相反数:Opp(exp)
说明:获取数字的相反数。
例子:Opp(#金额)
随机数:Rand(min, max)
说明:返回大于等于min,小于max的随机数。min,max是可选参数,没有时默认返回大于等于0,小于1的随机数。
例子:
Rand()
Rand(0,10)
随机整数:RandInt(min, max)
说明:返回大于等于min,小于max的随机整数。min,max是可选参数,没有时默认返回大于等于0,小于1的随机整数。
例子:
RandInt()
RandInt(0,10)
获取整数部分位数:LenInt(exp)
说明:获取数字的整数部分位数。
例子:LenInt(#金额)
上限值:Ceil(exp, digits)
说明:获取数字的上限值。数字的上限值是大于等于该数字的最接近的整数。digits大于 0(零),则将数字取上限值到指定的小数位;digits等于 0,则将数字取上限值到最接近的整数。digits小于 0,则在小数点左侧进行取上限值。digits是可选参数,默认值是0,digits应该在0~20(含)范围内。
例子:
Ceil(#金额)
Ceil(#金额, 2)
Ceil(#金额, Opp(2))
下限值:Floor(exp, digits)
说明:获取数字的下限值。数字的下限值是小于等于指定数字最接近的整数。digits大于 0(零),则将数字取下限值到指定的小数位;digits等于 0,则将数字取下限值到最接近的整数。digits小于 0,则在小数点左侧进行取下限值。digits是可选参数,默认值是0,digits应该在0~20(含)范围内。
例子:
Floor(#金额)
Floor(#金额, 2)
Floor(#金额, Opp(2))
四舍五入:Round(exp, digits)
说明:获取数字的四舍五入数值。digits大于 0(零),则将数字四舍五入到指定的小数位;digits等于 0,则将数字四舍五入到最接近的整数。digits小于 0,则在小数点左侧进行四舍五入。digits是可选参数,默认值是0,digits应该在0~20(含)范围内。
例子:
Round(#金额)
Round(#金额, 2)
Round(#金额, Opp(2))
日期函数
创建日期:Date(year, month, day, hour, minute, second)
说明:创建日期。year,month,day,hour,minute,second是可选参数,没有上述参数时返回当前系统日期时间。
例子:
Date()
Date(2011,1,1)
Date(2011,1,1,23,59,59)
获取年份:Year(date)
说明:获取年份。date是可选参数,默认返回当前系统日期年份。
例子:
Year()
Year("2011-1-1")
Year(#日期)
获取月份:Month(date)
说明:创建日期。date是可选参数,默认返回当前系统日期月份。
例子:
Month()
Month("2011-1-1")
Month(#日期)
获取天数:Day(date)
说明:创建日期。date是可选参数,默认返回当前系统日期天数。
例子:
Day()
Day("2011-1-1")
Day(#日期)
增加年数:AddYears(date, years)
说明:增加年数。date当前的日期,years是要增加的年数。
例子:
AddYear("2011-1-1", 2)
AddYear("2011-1-1", -2)
增加月数:AddMonths(date, months)
说明:增加月数。date当前的日期,months是要增加的月数。
例子:
AddMonths("2011-1-1", 2)
AddMonths("2011-1-1", -2)
增加天数:AddDays(date, days)
说明:增加天数。date当前的日期,days是要增加的天数。
例子:
AddDays("2011-1-1", 2)
AddDays("2011-1-1", -2)
获取星期天数:DayNum(date, cn)
说明:获取日期date所在的星期天数。cn是1时返回中文星期天数“日,一,二,三,四,五,六”,为0时返回“1,2,3,4,5,6”,默认是1。
例子:
DayNum("2011-1-1")
DayNum("2011-1-1", 0)
数据源函数
创建序列:Series(field,…)
说明:根据表格字段field创建并返回序列。一般用于图表数据源。
例子:
Series(#名称)
Series(#名称, #名称)
Series(#销售额, #毛利)
读取数据值:GetValue(field, row)
说明:获取指定行row和指定字段field的数据值。row是可选参数,默认是当前行。
例子:
GetValue(DynamicField())
获取数组长度:Len(exp)
说明:获取数组长度。
例子:Len(@数组)
创建数组:Array(item1, item2, …)
说明:创建数组。
例子:Array("Item1", "Item2", "Item3")
杂项函数
空值:Null()
说明:返回空值。
例子:
Null()
布尔值真:True()
说明:返回布尔值true。
例子:
True()
布尔值非:False()
说明:返回布尔值false。
例子:
False()
总行数:RowCount()
说明:获取当前表格总行数。
例子:RowCount()
行索引:RowIndex()
说明:获取当前行索引。
例子:RowIndex()
行号:RowNumber()
说明:获取当前行号。
例子:RowNumber()
当前值:Val()
说明:获取当前值。
例子:Val()
备注
*技术交流与合作:QQ: 791663094;Email:[email protected]
版权声明:本文为博主原创文章,未经博主允许不得转载。