说明:
$F{} 为报表处理数据的字符标识格式。在存储该标识时才对字符进行数据集转化。
其中函数、表达式和操作符(+、-、×、÷、大于、小于、(、) 、AND、OR、NOT、=),可以联合使用。
1.数据集函数
a).select
参数: 1.select(String select_exp)
2.select(String select_exp,boolean filter_exp)
select_exp:$F{数据集.字段 }
filter_exp:是否返回原字符串或返回空字符串
说明:功能待定
返回值: 1、原字符串
2、filter_exp为true返回原字符串否则返回空字符串
使用方式:
ds为数据集,cusNo为数据集字段。
表达式
select($F{ ds.cusNo })
b).group
参数:group(String str)
str:$F{数据集.字段 }
说明:分组函数,同类别同行合并
返回值:原字符串
使用方式:
ds为数据集,brNo为数据集字段(机构编号)。
表达式
group($F{ ds.brNo })
c).gpc
参数:gpc(String str)
str:$F{数据集.字段 }
说明:动态列,用作动态扩展列
返回值:查询动态字符串
使用方式:
ds为数据集,month为数据集字段(月份)。
表达式
gpc($F{ ds.month })
2.单元格函数
a).sum
参数:sum(String... args)
args:多个 $F{数据集.字段 }以,号分隔。
说明:转Double后求和
返回值:和字符串
使用方式:
ds为数据集,amt,amt1,amt2 amt为金额。
表达式
sum($F{ ds.amt },$F{ ds.amt1 },$F{ ds.amt2 },...)
b).avg
参数:avg(String... args)
args:多个 $F{数据集.字段 }以,号分隔。
说明:转Double后求平均数
返回值:平均值字符串
使用方式:
ds为数据集,amt,amt1,amt2 amt为金额。
表达式
avg($F{ ds.amt },$F{ ds.amt1 },$F{ ds.amt2 },...)
c).max
参数:max(String... args)
args:多个 $F{数据集.字段 }以,号分隔。
说明:转Double后求最大值
返回值:最大值字符串
使用方式:
ds为数据集,amt,amt1,amt2 amt为金额。
表达式
max($F{ ds.amt },$F{ ds.amt1 },$F{ ds.amt2 },...)
d).min
参数:max(String... args)
args:多个 $F{数据集.字段 }以,号分隔。
说明:转Double后求最小值
返回值:最小值字符串
使用方式:
ds为数据集,amt,amt1,amt2 amt为金额。
表达式
min($F{ ds.amt },$F{ ds.amt1 },$F{ ds.amt2 },...)
e).count
参数: 1、count()
2、count(boolean filterExp)
3、count(String nullCheckExp)
args:多个 $F{数据集.字段 }以,号分隔。
说明:功能待定
返回值: 1、返回整数1
2、filterExp为true返回整数1否则返回整数0
3、nullCheckExp为空字符串返或null返回整数1否则返回整数0
使用方式:
ds为数据集,cusNo为客户编号。
表达式
count()
count(true)
count($F{ds.cusNo})
f).nvl
参数:nvl(String value1,String value2)
说明:处理空值
value1,value2:可以是$F{数据集.字段 },也可以为具体数值。
使用方式:
ds为数据集,cusType为客户编号。
表达式
nvl($F{ds.cusType},"其他类型")
3.时间日期函数
a).day
参数:day(String dateStr),格式:yyyy-MM-dd HH:mm:ss
dateStr: $F{数据集.字段 }
说明:获取日期
返回值:日期字符串
使用方式:
ds为数据集,startDate为开始时间字段。
表达式
day($F{ ds.startDate })
b).month
参数:month(String dateStr),格式:yyyy-MM-dd HH:mm:ss
dateStr: $F{数据集.字段 }
说明:获取月份
返回值:月份字符串
使用方式:
ds为数据集,startDate为开始时间字段。
表达式
month($F{ ds.startDate })
c).year
参数:year(String dateStr),格式:yyyy-MM-dd HH:mm:ss
dateStr: $F{数据集.字段 }
说明:获取年份
返回值:年份字符串
使用方式:
ds为数据集,startDate为开始时间字段。
表达式
year($F{ ds.startDate })
d).now
参数:now()
说明:返回当前时间
返回值:当前时间字符串(格式:yyyy-MM-dd HH:mm:ss)
使用方式:
表达式
now()
e).time
参数:time()
说明:返回当前时间
返回值:当前时间字符串(格式:HH:mm:ss)
使用方式:
表达式
time()
4.字符串函数
a).chn
参数: 1、chn(String str)
2、chn(String str,boolean flag1,boolean flag2)
3、chn(String str,boolean flag1)
str: $F{数据集.字段 }
说明:数字转中文大写
返回值: 1、纯中文大写(例:2800->二八零零)
2、flag2为true返回大写(例:2800->贰仟捌佰),其它同1
3、flag1为true返回大写(例:2800->二千八百),其它同1
使用方式:
ds为数据集,amt为金额字段。
表达式
chn($F{ ds.amt })
b).left
参数:left(String str,int n)
str: $F{数据集.字段 }
说明:截取左边n个字符
返回值:截取后的字符串(长度不够直接返回原字符串)
使用方式:
ds为数据集,addr为地址字段。
表达式
left($F{ ds.addr },10)
c).right
参数:right(String str,int n)
str: $F{数据集.字段 }
说明:截取左边n个字符
返回值:截取后的字符串(长度不够直接返回原字符串)
使用方式:
ds为数据集,addr为地址字段。
表达式
right($F{ ds.addr },10)
d).mid
参数: 1、mid(String str,int start)
2、mid(String str,int start,int end)
str: $F{数据集.字段 } ,从左start开始到end结束
说明:截取字符串
返回值: 1、返回从start位置开始的字符串
2、返回从start位置开始,end位置结束的字符串
使用方式:
ds为数据集,addr为地址字段。
表达式
mid($F{ ds.addr },1,5)
e).ltrim
参数:ltrim(String str)
str: $F{数据集.字段 }
说明:去除左空格
返回值:去除左空格的字符串
使用方式:
ds为数据集,addr为地址字段。
表达式
ltrim($F{ ds.addr })
f).rtrim
参数:ltrim(String str)
str: $F{数据集.字段 }
说明:去除右空格
返回值:去除右空格的字符串
使用方式:
ds为数据集,addr为地址字段。
表达式
rtrim($F{ ds.addr })
g).trim
参数:trim(String str)
str: $F{数据集.字段 }
说明:去除左右空格
返回值:去除左右空格的字符串
使用方式:
ds为数据集,addr为地址字段。
表达式
trim($F{ ds.addr })
h).len
参数:len(String str)
str: $F{数据集.字段 }
说明:取长度
返回值:字符串的长度
使用方式:
ds为数据集,addr为地址字段。
表达式
len($F{ ds.addr })
i).lower
参数:lower(String str)
str: $F{数据集.字段 }
说明:转小写
返回值:转小写后的字符串
使用方式:
ds为数据集,bloodType为血型字段。
表达式
lower($F{ ds.bloodType })
j).upper
参数:upper(String str)
str: $F{数据集.字段 }
说明:转大写
返回值:转大写后的字符串
使用方式:
ds为数据集,bloodType为血型字段。
表达式
upper($F{ ds.bloodType })
k).pos
参数: 1、pos(String str1,String str2)
2、pos(String str1,String str2,int index)
str1,str2: $F{数据集.字段 }
说明:查找位置
返回值: 1、返回str2在str1中的第一次出现位置
2、返回str2在tr1中的第index次出现位置
使用方式:
ds为数据集,addr为地址字段。
表达式
pos($F{ ds.addr })
l).rmb
参数:rmb(Number num)、rmb(String num)
snum: $F{数据集.字段 }
说明:转人民币大写
返回值:人民币大写字符串
使用方式:
ds为数据集,amt金额字段。
表达式
rmb($F{ ds.amt })
m).rplc
参数:rplc(String str,String strz,String strt)
str: $F{数据集.字段 }
说明:全部替换
返回值:人民币大写字符串
使用方式:
ds为数据集,addr为地址字段。
表达式
rplc($F{ ds.addr },"市","县")
n).space
参数:space(int n)
n: 数字
说明:取空格
返回值:有n个空格的字符串
使用方式:
表达式
space(5)
o).split
参数:split(String str,String flag)
n: $F{数据集.字段 }
说明:以flag分隔字符串
返回值:分隔后的数组
使用方式:
ds为数据集,tel为电话字段。
表达式
split($F{ ds.tel },"-")
p).wordCap
参数:wordCap(String str)
n: $F{数据集.字段 }
说明:去除空白字符并转为大写
返回值:大写字符串
使用方式:
ds为数据集,tel为电话字段。
表达式
wordCap($F{ ds.tel },"-")
q).rmQuote
参数:rmQuote(String str)
n: $F{数据集.字段 }
说明:替换字符串中的单、双引号
返回值:替换后的字符串
使用方式:
ds为数据集,tel为电话字段。
表达式
wordCap($F{ ds.tel },"-")
5.数据类型转换
a).date
参数:date(String dataStr),格式:yyyy-MM-dd
dataStr: $F{数据集.字段 }
说明:日期字符串格式化为长日期
返回值:格式化后的日期
使用方式:
ds为数据集,timeStamp为操作的时间戳字段。
表达式
date($F{ ds.timeStamp })
b).dateTime
参数:dateTime(String dataStr)、dateTime(Long dataStr)
dataStr: $F{数据集.字段 }
说明:日期格式化
返回值:格式化后的日期(yyyy-MM-dd HH:mm:ss)
使用方式:
ds为数据集,timeStamp为操作的时间戳字段。
表达式
dateTime($F{ ds.timeStamp })
c).dateTime2
参数:dateTime2(String dataStr, String format)
dataStr: $F{数据集.字段 }
说明:按格式格式化日期
返回值:返回format格式化后的日期
使用方式:
ds为数据集,timeStamp为操作的时间戳字段。
表达式
dateTime2($F{ ds.timeStamp },"yyyy-MM-dd HH:mm:ss")
d).toDouble
参数:toDouble(String str)
str: $F{数据集.字段 }
说明:转换成double类型
返回值:double值
使用方式:
ds为数据集,amt为金额字段。
表达式
toDouble($F{ ds.amt })
e).toFloat
参数:toFloat(String str)
str: $F{数据集.字段 }
说明:转换成float类型
返回值:float值
使用方式:
ds为数据集,amt为金额字段。
表达式
toFloat($F{ ds.amt })
f).toInt
参数:toInt(String str)
str: $F{数据集.字段 }
说明:转换成int类型
返回值:int值
使用方式:
ds为数据集,count为数量字段。
表达式
toInt($F{ ds.count })
g).toLong
参数:toLong(String str)
str: $F{数据集.字段 }
说明:转换成long类型
返回值:long值
使用方式:
ds为数据集,idNo为证件编号字段。
表达式
toLong($F{ ds.idNo })
h).toNumber
参数:toNumber(String str)
str: $F{数据集.字段 }
说明:转换成number类型
返回值:number值
使用方式:
ds为数据集,idNo为证件编号字段。
表达式
toNumber($F{ ds.idNo })
i).toStr
参数:String toStr(Object obj)
str: $F{数据集.字段 }
说明:对象转换成字符串
返回值:转换后的字符串
使用方式:
ds为数据集,idNo为证件编号字段。
表达式
toStr($F{ ds.idNo },"#,##0.00")
j).toDef
参数:toDef(Object str,String pattern),pattern格式:DecimalFormat支持的格式(例:#,##0.00)
str: $F{数据集.字段 }
pattern:字符格式
说明:自定义数值格式化(str自动转成double类型)
返回值:格式化后的字符串
使用方式:
ds为数据集,amt为金额类型字段。
表达式
toDef($F{ ds.amt })
k).toDtf
参数:toDtf(Object str,String frompattern,String topattern),pattern格式:SimpleDateFormat支持的格式
str: $F{数据集.字段 }
frompattern:时间格式
topattern:时间格式
说明:自定义日期格式化
返回值:格式化后的日期
使用方式:
ds为数据集,regDate为登记日期字段。
表达式
toDtf($F{ ds.regDate },"yyyyMMdd","yyyy-MM-dd")
l).toDwf
参数:toDwf(Object str,String pattern),pattern格式:DecimalFormat支持的格式(例:#,##0.00)
str: $F{数据集.字段 }
pattern:金额格式
说明:自定义数值格式化(str自动转成double类型并除以10000)
返回值:格式化后的字符串
使用方式:
ds为数据集,amt 为金额字段。
表达式
toDwf($F{ ds.amt },"#,##0.00")
6.表达式
a).四则运算
四则运算可以点击表达式设计器右侧的操作符实现字段四则运算与字符串拼接
使用方式:
ds为数据集,amt 为金额字段。
表达式
($F{ ds.amt }/10000)+"万元"
b).三目表达式
报表设计器表达式可以配置为三目表达式,同时支持三目表达式嵌套
使用方式:
ds为数据集,amt 为金额字段。
表达式
toDouble($F{ds.amt})<100?"小于100":$F{ds.amt}
c).条件表达式
报表设计器可以配置为条件表达式,同时支持条件条件式嵌套
使用方式:
ds为数据集,cusName 为客户名称字段。
表达式
if($F{ds.cusName}=="张三"){
"小张"
}else{
$F{ds.cusName}
}