利用润乾时间日期函数实现日期扩展功能
2016-12-01 11:02
375 查看
在一些日常财务统计报表中,常常会遇到这样一个问题,输入一个日期,要把这个日期所在的月份中每一天都要列出来,然后在每一天后面填写当天的数据。由于这些日期并不是来自数据库中的真实数据,所以一般只能靠事先写定来完成。可这样带来的弊端就是需要做的工作量非常的大且容易出错,那么如何来利用润乾报表来完成这样的功能呢?
在这里,就要利用到润乾内置的时间日期函数daysInMonth()和monthbegin()了。先介绍一下这两个函数:
daysInMonth():
函数说明:
获得指定日期所在月的天数
语法:
daysInMonth(dateExp)
参数说明:
dateExp 日期或标准日期格式的字符串,
如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss
返回值:
整数
示例:
例1:daysInMonth(datetime2("19800227","yyyyMMdd")) 返回:29
例2:daysInMonth("1972-11-08 10:20:30") 返回:30
例3:daysInMonth(dateTime("2006-01-15 10:20:30")) 返回:31
monthbegin():
函数说明:
取得指定日期所在月的月首
语法:
monthbegin( dateExp )
参数说明:
dateExp 日期或标准日期格式的字符串,
如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss
返回值:
日期时间型
示例:
例1:monthbegin(datetime2("19800227","yyyyMMdd")) 返回:1980-02-01 00:00:00
例2:monthbegin("1972-11-08 10:20:30") 返回:1972-11-01 10:20:30
例3:monthbegin(dateTime("2006-01-15 13:20:30")) 返回:2006-01-01 13:20:30
第一步:设置报表参数,此参数用来输入任意一个日期。
第二步:利用daysInMonth()和to()函数来制造扩展单元格:
其中:A3单元格表达式为:=to(1,daysInMonth(@datetime)),利用传进来的参数算出这个日期所在的月份有多少天,然后用to函数从第一天到最后一天进行扩展。
B3单元格的表达式为:=left(str(monthbegin(@datetime)),8)+A3,根据参数的值用monthbegin()函数算出这个月的开始日期,并拼接上A3单元格的值,得到相应日期。
第三步:对报表进行一些美化。
其中,在第三行的背景色属性中,写入表达式:if(day(@datetime) == A3,-52429,-1),这样就可以达到当前输入的日期所在的行变成红色,其他行不变色,达到提示作用。
注:day()函数是返回所输入的日期在本月中是几号。
我们来看一下最终效果:
在一些日常财务统计报表中,常常会遇到这样一个问题,输入一个日期,要把这个日期所在的月份中每一天都要列出来,然后在每一天后面填写当天的数据。由于这些日期并不是来自数据库中的真实数据,所以一般只能靠事先写定来完成。可这样带来的弊端就是需要做的工作量非常的大且容易出错,那么如何来利用润乾报表来完成这样的功能呢?
在这里,就要利用到润乾内置的时间日期函数daysInMonth()和monthbegin()了。先介绍一下这两个函数:
daysInMonth():
函数说明:
获得指定日期所在月的天数
语法:
daysInMonth(dateExp)
参数说明:
dateExp 日期或标准日期格式的字符串,
如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd,HH:mm:ss
返回值:
整数
示例:
例1:daysInMonth(datetime2("19800227","yyyyMMdd")) 返回:29
例2:daysInMonth("1972-11-08 10:20:30") 返回:30
例3:daysInMonth(dateTime("2006-01-15 10:20:30")) 返回:31
monthbegin():
函数说明:
取得指定日期所在月的月首
语法:
monthbegin( dateExp )
参数说明:
dateExp 日期或标准日期格式的字符串,
如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss
返回值:
日期时间型
示例:
例1:monthbegin(datetime2("19800227","yyyyMMdd")) 返回:1980-02-01 00:00:00
例2:monthbegin("1972-11-08 10:20:30") 返回:1972-11-01 10:20:30
例3:monthbegin(dateTime("2006-01-15 13:20:30")) 返回:2006-01-01 13:20:30
第一步:设置报表参数,此参数用来输入任意一个日期。
第二步:利用daysInMonth()和to()函数来制造扩展单元格:
其中:A3单元格表达式为:=to(1,daysInMonth(@datetime)),利用传进来的参数算出这个日期所在的月份有多少天,然后用to函数从第一天到最后一天进行扩展。
B3单元格的表达式为:=left(str(monthbegin(@datetime)),8)+A3,根据参数的值用monthbegin()函数算出这个月的开始日期,并拼接上A3单元格的值,得到相应日期。
第三步:对报表进行一些美化。
其中,在第三行的背景色属性中,写入表达式:if(day(@datetime) == A3,-52429,-1),这样就可以达到当前输入的日期所在的行变成红色,其他行不变色,达到提示作用。
注:day()函数是返回所输入的日期在本月中是几号。
我们来看一下最终效果:
相关文章推荐
- 利用润乾时间日期函数实现日期扩展功能
- 利用润乾时间日期函数实现日期扩展功能
- Javascript扩展String.prototype实现格式金额、格式时间、字符串连接、计算长度、是否包含、日期计算等功能
- ddpowerzoomer.js利用jQuery扩展,实现对图片局部放大功能(源码分析)
- python TKinter 实现显示日期时间和秒表的功能
- 利用环信扩展消息实现话题卡功能,包括发送话题卡 接受话题卡
- jQuery插件Datepicker日期选择器实现Javascript自定义日期时间选择功能javascript
- [置顶] javascript时间和日期,实现时钟功能之浅析
- 利用Timer类实现"显示时间"的功能
- “日期和时间->自动确定日期和时间->使用网络提供时间”功能是怎样实现的?
- jQuery插件Datepicker日期选择器实现Javascript自定义日期时间选择功能
- 十二、初学.NET—利用AJAX在页面头部显示服务器当前时间,并实现倒计时功能
- asp.net(C#)实现功能强大的时间日期处理类完整实例
- java实现记事本基本功能:新建、打开、保存、另存为、退出、替换、全部替换、复制、剪切、粘贴、全选、获取当前时间日期、修改字体、颜色、自动换行等
- 利用INT 1Ah时钟中断来实现任意时间的自动开机功能
- javascript时间和日期,实现时钟功能
- 微信小程序使用picker实现时间和日期选择框功能【附源码下载】
- 在JavaScript文件中用jQuery方法实现日期时间选择功能
- 利用JS实现Web日历控件(包括日期和时间)