在实现润乾报表中查询功能时,若把SQL语句用报表本身数据集实现,则过于依赖参数。而由于传给JSP页面的参数定义得非常死板,若传递了五个参数,则它们都必须赋值,这在对五个字段进行查询是不可想象的,因为用户在查询时不可能对五个参数都感兴趣,可能只对一个或几个字段作为关键字进行查询。而在润乾中若某些字段为空,则查不出任何数据,因为在报表数据集中定义的SQL语句是依赖于参数的(Column=?,?由内部设定的参数顺序与之匹配)。后来,思考了一下能不能对SQL语句进行某些变通,纯粹的等号判定肯定是行不通的,也想不出能用like替代,只得作罢。干脆不在报表内部设置where语句,在外部得到数据集本身的SQL语句,并加入具体的查询后缀进行查询。
接下来就变成简单的JSP页面传递值的问题了,虽说是相当简单的事情,可做的时候还是一些小问题。由于我是在A页面传给A页面,所以在第一次登录A页面和登录A页面后查询参数的值是不同的,前者为null,后者为“”(若不输入查询条件)。所以不能在写where查询语句时一概而论,全判断**==null或**.equals(“”)。而通过将这些语句通过try,catch住就可以只判断**.equals(“”)就写出查询语句。因为第一次为null,判断.equals(“”)会出异常,而在catch块中什么都不写就行了。(不过不知道会不会有什么后遗症L,要是出问题就把查询结果放到另一个页面算了)。
中午吃完饭两位总管现身了,不过也没安排什么任务。下午比较清闲,看了一下昨天刚买的Spring技术手册。这本书和JSP2.0技术手册在包装上简直一模一样,都是博文视点出的(个人对博文视点的书还是比较喜欢的),更加巧的是两本书的三个作者都是台湾人,而是都姓林!有点太巧了。不觉间看着看着下午就过去了,颇像大二上学期在D楼看JSP2.0技术手册的情景,也是记不清时间了。对于“手册”两字,似乎不像“精通”之类那样有震撼力,可是细品之后会发现这种书却是最言简意赅的,展现给你一个即完整又清晰的技术框架。高中有一种辅导书叫重点难手册,质量也非常高,记得当时化学系列我甚至有些爱不释手的味道。
