NC65 报表中日期函数的应用经验杜金帅 dujshc@yonyou.com1、引言NC 系统中在配置表样的时候有很多情况下用到日期,可能是要将某些日期信息显示在报表上,可能是将日期嵌入到公式之中用来取数。能够灵活运用日期函数,在配置表样的时候才可以有效满足用户的使用需求。2、应用场景及问题描述本文集中展示一些客户经常提到的有关日期报表问题,提供具体的处理办法以供顾问和关键用户参考使用。3、解决方案(1)资产负债表是一个时点表,显示的是某一期间最后一天的财务数据,所以表头显示的应该是具体到日的时间,但是系统中关键字显示的时候只能显示到月。处理办法:将期间关键字隐藏不显示,然后表头提取一个字符型的指标,配以取值公式:szyear()+'-'+szmonth()+'-'+szday()(2)报表上不仅要体现业务时间,还想要显示报表的实际录入时间。处理办法:提取字符型的指标,使用 EXCEL 函数中的日期和时间函数拼接具体计算时间,并用 STR 转换成字符型格式。公式样式:STR(YEAR())+'-'+STR(MONTH())+'-'+STR(DAY())+' '+STR(TIME())(3)资产负债表的期初余额实际是去年的期末余额,如何能直接取上年的期末余额。处理办法:用 mselect 类函数,如 meselect、mselecta、mselects。利用-zmonth()做月份的偏移。例如,写一个区域公式:MSELECTA(D6:D21,,-zmonth())(4)当没有做以前年份的报表数据,可否直接从账上取上年同期的累计数。处理办法:系统没有专门取上年的总账函数,但是可以将取本年累计的函数做偏移,将年份向前偏移一年。例如:GLAccumAmt('1221',zyear()-1,'',,'借','本币','Y','','组织本币','0001')取 1221 科目去年的同期累计金额。(5)部分业务函数如 GLAmtWithinDateRange()使用的时间要素是起始日期和结束日期,写公式的位置要嵌入计算期间的具体日期。处理办法:起始日期使用 zdateqc('-')结束日期使用 zdate('-')分别嵌入到公式对应的参数位置,即可表示计算期间开始日和结束日。(6)利用 getdata 公式取语义模型的数据,使用的筛选参数会用到会计期间,如何写函数能否自动读取当下报表计算期间。处理办法:语义模型中的会计期间写法是“2018-01”形式,可以结合日期zdate('-')和字符截取函数 substr(),将计算的年份和月份截取出来。例如:SUBSTR(zdate('-'),0,7)(7)报表上想要体现某个日期到年初已经经过的天数。处理办法:提取一个日期型的指标,用户可以指定计算的日期,年初的日期用公式直接取出。利用 DAYDIFF()函数计算两个日期单元格间的天数差。4、注意事项无。