知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 知识库 > 设计基础 > 快逸报表为报表添加无数据的日期点

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

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

本文分别以日期统计图和年份统计图为例,介绍快逸报表中如何实现上述需求。

首先介绍快逸的内置函数relDate():

函数说明:从给定的日期型数据中,算出相差n天后的新的日期数据。

语法:relDate(dateExp, nExp)

参数说明:dateExp:给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串,如:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd 或 HH:mm:ss。

nExp: 整数表达式,需要求得nExp天后的新日期。

  • 以日期为分类值的统计图

设计报表,数据集使用内建数据集:

1.png

其中somedate为日期型,countnum为数值型。

2.png

为报表添加两个参数,一个是起始日期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日,展示报表如下。

3.png

  • 以年份为分类值的统计图

由relDate()函数的说明中可以看出,无法利用这个函数来计算所给的时间段年份的序列,快逸报表中利用int()函数来解决。

设计报表,报表内建数据集和报表设计:

4.png

其中yearnum为字符串 countnum也为字符串。

5.png

为报表添加两个参数,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。展示报表如下。

6.png

从预览图中可以看出没有数据的年份显示为0,解决了需求中的问题。

本文标签:
发布日期:2010/03/30
本文分类: 设计基础