java自1995年诞生以来,就被广泛看好,到如今,已经是家喻户晓的了,几乎已经成了软件开发的首选。
    最近我们公司采购了一套用纯javaEE技术开发的二次开发平台,个人觉得非常好用。这是一款由上海华丹信息技术有限公司开发的一套完整的javaWEB二次开发平台,它是采用引擎模式开发的一套二次开发平台,其实简单点说,就是开发所产生的各个组件都存放在一个系统库中,当需要用于展现的时候,再从数据库中查询出来。这种方式的一大优点就是不产生源代码,至少是基础业务完全不需要写代码,除非一下非常复杂的业务,需要自己编写一下代码,但是他们提供了API可以调用。这个平台里面包含了自定义WEB报表引擎,自定义表单引擎,MVC控制引擎、WEB组件引擎、数据维护引擎,可视化工作流引擎以及完整的组织机构、用户管理、权限管理等等。就这些现有的组件,基本上可以完成大部分的中小企业软件的开发,再加上他们提供的API,完全可以完成复杂业务系统的开发。
    废话少说,我们公司是采购过来为一个税务局开发一套数据上报系统的。刚开始接触这个开发平台的时候,真是一头雾水,看着这么多的功能按钮,到底干嘛的,从哪儿开始?下不了手。不过还好,这个不是问题,简单的看了一下他们提供的开发入门手册跟使用手册之后,基本就了解了使用这个平台进行开发的要领。根据他们的开发入门手册做一遍下来,就会明白虽然那么多的功能按钮什么的,但是排布都是有依据的,有前后顺序的。实际上只要理清了自己的业务逻辑,然后再在平台上对应的去寻找我所需要的东西,就可以完成我要的功能。
    话虽如此,但是有时候难免会碰到一些搞不定的问题,或者是觉得很模糊的问题。 就比如说我遇到这样一个问题:我怎么样以一种最简单的方式做一个季度汇总报表出来?
    我本来是有一个数据库表是按日存放数据的,因为每天都要上报数据。但是局里说需要做出季度汇总,既然是季度汇总报表,那当然是直接选择年份,然后就选择季度了,但是数据库表里根本没有季度这个字段啊,而且也没有年份这个直接的字段。后来研究了一下他们提供的系统函数,再研究了一下他们提供的示例。终于做出了如下这个效果。

图1
    如图一所示,年份跟季度都做成了下拉框,直接选择就可以了。使用非常方便,而且在数据库中就一个标识时间的字段。具体的做法简单描述如下:
    1、在报表数据源中增加查询条件:where date>=? and date<=? 系统会自动生成date,date2两个条件,通过这两个条件给定季度的日期范围。 
    2、在报表条件资源中,新增外部year条件列。 
    3、在报表条件资源中,新增外部quarter条件列,设置界面如下:
基本信息页:图2
字典设置页:图3
    4、维护系统生成条件date信息:
条件值表达式:quarterStart(repCnd("year"),repCnd("quarter")),对应季度的起始日期,并隐藏该条件。 
    5、维护系统生成条件date2信息:
条件值表达式:quarterEnd(repCnd("year"),repCnd("quarter")),对应季度的终止日期,并隐藏该条件。
    这样基本上就设置好了,然后在报表界面的显示效果就如图1了。这样就可以很方便的汇总季度数据了。说句实话,如果没有他们这个开发平台,就用以往的编码方式的话,恐怕处理方式就没这么简单了,所以有时候这个开发平台确实能省掉很多麻烦的事情,使得开发更为简单。而且到目前为止,我们使用他们这个平台还没有出现什么bug,并且升级也非常简单,这是最关键的。