动态宏实现汇总后再进行填报功能
报表提供了强有力的填报功能。
对于报表应用而言,所有数据全部来自于业务系统、全部存在于数据库中固然理想,但实际情况远非如此,必然有大量的数据,需要另外输入、上报、汇总,包括其中很多是临时性的需求。如果不断为这种数据收集方面的需求开发新的系统,不仅成本高昂,而且很难及时满足业务需要。而通过报表软件的填报功能,可以非常轻松地解决数据报送的问题,使报表和分析工作具有坚实的基础。
例如在实际需求中,肯定会有逐级上报汇总审核的这种流程,一张填报表由上报人员先要进行下级数据汇总后的查看,可以对汇总的结果进行修改后再进行向上级提交。如果用以往的方式,需要先用存储过程来进行数据的汇总然后展现出来,再进行填报。而中提出了宏的概念,可以动态的来进行这项工作。下面就大致介绍下如何实现该功能。
首先准备一张汇总表,当然这里数据取得我们是通过sql语句里sum求出来的,例如数据集sql为:
“select t.dm,sum(t.cs) as cs ,sum(t.nmcl) as nmcl ,sum(t.nfmxcl) as nfmxcl , sum(t.dncczxq) as dncczxq , sum(t.dnscpt) as dnscpt , sum(t.dnscjy) as dnscjy from RP_TABLE t where t.dept in (“+str(@depts)+”) and t.issue =’”+@issue+”‘ group by t.dm,t.dept,t.issue”
这样的写法所看的的报表就是展现一套已经经过汇总的结果的报表。对这张表再增加填报更新属性就做成了一张填报表。可是我们发现取出来的字段都是通过sum算出来的,如果填报时还回填该数据库表中的话,就会多出来数据,而不是去修改sum之前的数据。例如某个单元格通过sum出来的结果是500,页面中修改成1000,提交入库,成功后返回该表或者下次再通过这张表查看,仍然读的是上述的这个数据集,而我们这里需要根据某个参数来查询新的数据,那么的动态宏就可以很好的满足这个需求,实现起来可以通过某个条件来判断是否是需要汇总,如果是读取上述sql作为数据集,如果不需要汇总,采用新的sql做成数据集,这样就可以很好的满足了这种汇总填报还带有查询功能的报表了。