在一张报表中完成日周月年报
本文以一个例子说明如何通过参数和宏在一个报表中显示日报、周报、月报、年报等。
背景描述
要做的是一个公园人流量统计的报表,要求选择日报时能够选择对应的时间段,并显示相应时间段的数据:
周报则显示周一到周日的人流量数据:
月报显示月初到月末人流量数据:
年报显示一月到十二月的人流量数据:
实现过程
报表中使用to()函数的两个参数控制扩展范围,通过动态参数和动态宏判断对应显示值。现将报表中主要部分说明如下:
关键参数:
hourCount 用于计算小时数,表达式: int(@endTime)-int(@beginTime)
dayCount 用于计算天数,表达式:daysAfter(monthbegin(@dateFormat+” 00:00:00″),monthend(@dateFormat+” 00:00:00″))+1
toBegin to函数第一个参数,表达式:case(reportType,”1″,int(@beginTime),”2″,day(weekbegin(@date+” 00:00:00″))+1,1)
toEnd to函数第二个参数,表达式:case(@reportType,”1″,@endTime,”2″,@toBegin+6,”3″,@dayCount,”4″,12)
关键宏:
categoryName 用于显示扩展分类,也用做统计图分类值,表达式:case(@reportType,”1″,”B2+’:00′”,”2″, “‘星期‘+chn(dayNo(@year+’-'+@month+’-'+disp(B2)+’ 00:00:00′)-1)”,”3″,”@month+’月‘+B2+’日‘”,”4″,”B2+’月‘”)
最后将相应的参数传给数据集过滤数据即可。