解析运输系统 之四 --报表打印

业务应用系统都有大量的打印需求,包括交接用的单据,内部使用的作业单,各类报表。Web报表从来都不是一项轻松的活,有时可能会要求更高。就我本身的经验来看,做报表是一件体力活,吃力不讨好。然而,在掌握了一些技巧之后,报表就会变成纯粹的技术问题.我只用过JasperReports做web报表,其它的工具还没有深入研究过,所以这里只以此为例。同时也向大家推荐 JasperReports--一款强大的web报表打印工具.

首先就是格式的问题,就算我们只有一个客户,格式的变动也足够频繁了。每一个报表从初稿到最后稳定下来,至少要经过三个回合的沟通。虽然前两个回合的工作有一定的意义,但无疑存在一定的浪费。有人认为这是一个必经的阶段,如果没有前两个回合的半成品,就无法到达最后的成品。开始我也认可这种观点,后来考虑可以用其它的方式来完成前两个回合的任务。第一个回合用纸和笔来与用户沟通,迅速展示和反馈用户的想法,同时推动用户考虑更多细节。第二个回合用Excel做一个报表的原型,包含有模拟的数据,图形,并与用户再次交流。有了具体的原型,交流会非常高效。在这个阶段,90%的问题会被覆盖到,剩下的10%可以通过第三阶段开发时发现并快速解决。

其次是文件格式的问题。有的客户希望是用pdf格式打印,有的客户希望用Excel,有的则更离谱:我两种都要。还要,JasperReports提供了多种格式的报表,把它们封装得很好。现在的问题只是如何处理需求多样性的问题。在跟客户进行沟通之前,我已经有一些方案了。所有打印的地方都有两种格式的打印图标,产生的问题是有些客户只使用一种格式,另外一种格式对他来说就是一种困扰。或者做一个下拉菜单,用户可以选择自己想要的格式打印,同时又不会占用太多的页面空间。这也有一个问题,用户打印的时候必须点两次,而且每次都要点两次。或者就像我们的文本编辑器上的工具栏一样,把PDF图标和提示下拉菜单的图标都做小一点,放在一起。如果用户要打印PDF,只需要直接点PDF图标就可以了,如果想要另一种格式的打印,则要点两次--点一下下拉菜单,在下拉菜单中再点一下打印。这种方式最后被很多客户接受了。其间有一个客户甚至启发了我们把第二种方案做出改进,当鼠标放在打印的下拉菜单图标上时,自动下拉,无须多点一次。

托运单的明细内容。有些客户的托运单只有一条明细,有的有三条。我们最初设计的是不限条数,打出来最少占一张A4纸。客户自然而然会提到成本核算,一定要改成打印半张A4(A8)。我们在做了大量调查后发现,只对格式稍做调整就可以在半张A4纸在可以打印三条明细的托运单,而且可以满足几乎所有的需求。唯一的问题就是如何说服客户接受我们的打印格式,这个确实很困难,不过还是要做。

抬头和企业logo。不同的企业打印出来的托运单都希望带有自己企业的logo和抬头。这一点看起来不难,其实陷阱很多。各个企业的logo大小不同,存储的图片格式不同,企业名称的长度不同,抬头的要求也不同。最后大家都要做出妥协,用户可以修改企业名称在托运单的抬头,不一定非要跟企业名称完全一样 。图标的大小限定在一定范围内,存储格式也只限定在三种。而且我们承诺将来做提供更宽松的限制。

套打。这是最麻烦的事!想起来头都是痛的。我们按照单据的普通打印格式提供了相应的套打功能,如果有企业要求我们做出改动,就另外收费,在程序中hardcode。这是我唯一感觉无法接受的地方,即使客户愿意付费,但对我们来讲,产生的价值是非常低的。

关于报表打印的故事还远远没有结束,你也一定遇到过这样或那样的需求,请与我们一起分享,一起进步!

推荐阅读:
解析运输系统 之一。
解析运输系统 之二。
解析运输系统 之三。

你可能感兴趣的:(Web,Excel,Blog,企业应用,OpenSource)