欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

快逸报表为报表添加无数据的日期点

程序员文章站 2022-03-03 15:05:18
...

快逸报表是一款专业web报表开发工具,它具有功能齐全、性能稳定、易操作和界面美观等多项优点,已得到广大用户的一致赞赏与好评。

快逸报表的统计图模块无疑是用户使用广泛且实用的功能点,在报表中引入统计图可以让报表数据的展现更直观形象,统计图中有多种多样的分类形式,有时会需要随时间的变化来展示数据,比如某项数据的十年间变化图,或数据的某段时间中每天的变化图,在这种需求中可能会出现统计图中某个时间点没有记录的问题。制作统计图的时候,因为这个时间点数据库里没有数据,所以在进行统计的时候不会显示,如果在制作统计图的时候,希望在没有数据这一时间点加上零作为显示,则需要在设计报表时,将没有数据的日期添加上。

本文分别以日期统计图和年份统计图为例,介绍快逸报表中如何实现上述需求。
首先介绍快逸的内置函数relDate():

函数说明:从给定的日期型数据中,算出相差n天后的新的日期数据。
语法:relDate(dateExp, nExp)
参数说明:dateExp:给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss。 

nExp: 整数表达式,需要求得nExp天后的新日期。
以日期为分类值的统计图
设计报表,数据集使用内建数据集:
快逸报表为报表添加无数据的日期点
其中somedate为日期型,countnum为数值型。

快逸报表为报表添加无数据的日期点
为报表添加两个参数,一个是起始日期starttime,日期型,一个是截止日期endtime,日期型。单元格表达式分别为:
A2:=to(0,daysafter(@starttime,@endtime)),是计算显示日期的序列的基础。
B2:=relDate(@starttime,A2),通过relDate()这个函数计算得到日期的序列。
C2:=ds1.select1(countnum,somedate==B2),是通过B2得到的日期进行匹配,选出数据集相应的数据,
统计图的分类轴为B2 ,系列值为C3。
为报表添加参数模板,提供两个日期起始日期为2009年11月23日,结束日期为2009年11月27日,展示报表如下。

快逸报表为报表添加无数据的日期点
以年份为分类值的统计图
由relDate()函数的说明中可以看出,无法利用这个函数来计算所给的时间段年份的序列,快逸报表中利用int()函数来解决。
设计报表,报表内建数据集和报表设计:

快逸报表为报表添加无数据的日期点
其中yearnum为字符串 countnum也为字符串。

快逸报表为报表添加无数据的日期点
为报表添加两个参数,startyear和endyear,这两个参数用来计算一共统计多少年的信息。单元格的表达式如下:
B3:=to(0,int(C2)-int(B2))这个用来作为累计年份的基础。
C3:=int(B2)+B3通过计算得到顺序的年份。
D3:=ds1.select1(countnum,int(yearnum)==C3),这个数据通过匹配显示相应的年份,显示值为if(str(value())==”"||value()==null,”0″,value()),这样在显示的时候如果该年份没有数据,则显示为0
为报表添加参数模板,选择起始年份为2001,结束年份为2007。展示报表如下。

快逸报表为报表添加无数据的日期点
从预览图中可以看出没有数据的年份显示为0,解决了需求中的问题。
本文介绍的将某无数据时间点表示为0的功能只是快逸报表所能实现的众多功能中的一小点而已,快逸报表是集合了润乾公司开发团队多年的心血研发出来的一款功能强大、应用简单广泛的报表软件,润乾公司不断的解决用户的新需求来完善和提高自己,相信快逸报表能够给web报表开发者带来很大的帮助。

相关标签: Java综合