日期转换为汉字大写格式
需求描述:
如何将指定日期显示成大写形式?如日期为2012-09-24的数据,显示成二〇一二年九月二十四日。
需求分析:
快逸报表内置函数chn(),可以将一个整数转化成汉字大写,但chn(2012-09-20)这个表达式会先将2012-09-20作为一个数学表达式进行计算后在进行转换,得到的值也就是一九七九,看来我们想得到指定的汉字大写日期,只是通过chn()函数,还是不能满足需求的。
实现思路:
1. 得到指定日期的年月日,然后转换为大写,
2. 将年份中出现的零替换显示为〇,
3. 将得到的具体的年月日后拼接分别字符年月日。
具体实现的表达式:
1. 通过分别通过year(),month(),day()三个函数可以得到指定日期的年月日。
2. 通过chn()函数分别对于得到的指定小写数字的年月日,转换为汉字大写,如chn(year(now()))。
4. 将得到日期中年份出现的零,替换为〇,如rplc(chn(year(now())),”零“,”〇“)。
5. 在年月日分割处拼接上字符年月日,整体的表达式为=rplc(chn(year(now())),”零“,”〇“)+”年“+chn(month(now()),true)+”月“+chn(day(now()),true)+”日“。
6. 预览报表测试结果如下图所示:
需求总结:
对于数据显示成为特定格式的需求,如果显示格式不能满足需求的话,那么我们就需要考虑通过控制单元格表达式实现,设置单元格表达式我们可以像本小例中使用内置的函数实现,也可以通过自定义函数实现。