Java报表设计之周报查询

首先,先展示一下显示的效果。(以FineReport报表工具为例)
如下图:

周业务统计表

周业务统计表

 

第一步:取数据,然后自己定义一个内置数据集,里面写1到0
如图:
报表内置数据集

报表内置数据集

1到6表示 星期一到星期六。0表示星期天。
 
然后把数据拖入到格子里,如图:
报表表样设计

报表表样设计

如图,把自己写的星期1到0 拖到A8里,然后把日期的记录拖到B7里,C5、6里放的是列别。
然后有个问题,星期那里 我们写的是1到0,怎么样让他变成星期一 星期二这样的呢
右键A7 选择形态——数据字典:如图设置:
报表数据字典

报表数据字典

这样的话 就可以显示出星期几这样的效果了。
 
然后 我们来定义两个参数,一个是开始时间 StartDate,也就是一个星期的第一天
一个是结束时间 EndDate,也就是一个星期的最后一天。还有一个日期参数,就是我们可以随意选择的一个日期。
如图:
报表参数

报表参数

然后我们的开始时间和结束时间肯定不让我自己去查是吧,那简直是恶梦,我还得自己查一个日期 所在的第一天和最后一天是几号吗?不行吧~这里我们来简单处理下就可以了
如图:
报表参数处理器

报表参数处理器

结束和开始时间FineReport里有个函数可以自动算出来,省得麻烦
Dateinweek(比如2008-12-25,1)意思就是2008年12月25日所在那个周的第一天
由此看来,最后一天,当然就是 Dateinweek(“008-12-25“,7)
然后我们来设置日期怎么跟前面的星期几对应呢,就是说,怎么样,我才能让一个日期找到他到底是星期几呢?
这个也很简单哦~~
双击B8格子,在格子里加几个过滤条件,如图:

 

报表数据列

报表数据列

这个里面 我设置了 这个时间的开始时间 和结束时间 分别是大于开始时间
And 下雨结束时间, 这个很好理解吧,
我主要来讲讲最后一个
Weekday(XXX)=A8 这个意思
Weekday这个函数也是FineReport提供的
就是比如给你一个 2008-12-25 他就可以算出,这个日期是在星期几
比如他的结果是2 就表示08年12月25是星期2 !是0的话就表示是星期天,很方便吧
然后我设置他等于A8 这样就自动对应了,12月25日 就在星期二那一栏~~省了我很多事情~~
 
然后就ok了,我不想把日期显示出来,我只想看到星期123这样数据,如是 我把日期那一列的列宽设置为0了~对了 我还加了个表头~~顺便要提一下FineReport的服务很不错~~
 

Java报表工具相关文章

Leave a comment

Your comment