= left(months, 4)+"年XXXX公司生产月报("+right(months,2)+"月)"
详解:left(String,n) or right(String,n) 参数String为要截取的字符串,n为要截取的位数
上述当months为2018-10时:left("2018-10",4)显示为2018
扩展:mid(dailyDate,6,2) 取中间值 与left()、right()函数类似
=if(value()==0,"",value())
解析:当此单元格的值是0时就显示为空
=decode(表别称.字段名,'1','离职','0','在职')
解析:设置(表别称.字段名)(多)值的别称
如:(表别称.字段名)=1时的值为‘离职’,(表别称.字段名)=0时的值为‘在职’
多值亦可使用,具体使用个数待测
=round(ds1.select(ds1.yearDec,like(ds1.goods,'液晶电视'),n)
解析:ds1.yearDec为年销量递减率(%),ds1.goods为货物名称,n为小数点位数
当n=2、ds1.yearDec=3.5236时,货物名称为‘液晶电视’的年销量递减率取小数点后两位(3.52%)
=decode(表别称.字段名,'1','离职','0','在职')
解析:字段名,可以设置(表别称.字段名)值的别称
如:(表别称.字段名)=1时的值为‘离职’,(表别称.字段名)=0时的值为‘在职’
jsp中设置属性:saveAsName="xxx销量_${params.dailyDate}"
保存文件自定义名称sxxx销量_xxxx-xx-xx(日期)
NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。
报表SQL中: to_date(?,'yyyy-mm-dd') 把字符串转换成为指定的日期格式
报表SQL中: to_char(t.start_one_date, 'yyyy-MM-dd') 把日期转换成为字符串
报表展示面上:string(@endDate,"yyyy年MM月dd") 将日期转换成为指定格式的字符串
报表展示面上:=row() 当前行号
报表展示面上:=if(A7==0,'',B7/D7)条件判断 类似于三元表达式单元格A7==0?'':B7/D7;
解析:若单元格A7的值为0,单元格A7赋空值,否则赋B7/D7值
报表展示面上:=count( ds1.select(ACC,ACC=='2')) 计数器,数据源ds1中ACC值为2出现的次数
报表SQL中:=substr(ds1.appNum,0,7) 截取appNum值的前7位
报表展示面上: =ds1.avg(appNum) 统计数据源ds1中appNum的平均值
报表展示面上:=ds1.sum(A7{}) 统计A7列所有值的和
报表展示面上:=ds1.group(appNum) 依据appNum分组
报表展示面上:select的用法
例1:ds1.select( name ) 从数据源ds1中选取name字段列的所有值, 不排序
例2:ds1.select( #2, true ) 从数据源ds1中选取第二个字段列的所有值并降序排列
例3:ds1.select( name,false,sex=='1') 从数据源ds1中选取性别为男性的name字段列的值并升序排列
例4:ds1.select( name, true, sex=='1', id ) 从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列
报表展示面上:double(ds1.CDGS_SIZE)
double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)
decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)
float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)
max(ds1.appNum) 获取最大值
报表展示面上:query("select tn.name from tableName tn where tn.sex=?","男");
函数说明: 执行sql语句,返回结果数据集合,只能返回单列数据,如果sql语句中有多个字段,则返回第一个字段的结果值
语法: query(sqlStatement{,arg1{,arg2{,arg3{,……}}}})
参数说明: sqlStatement 合法的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式
返回值: 一组数据的集合,数据类型由sql语句的第一个选出字段决定