好久都没有动opc了,一直在做干部管理的项目,把界面贴两张,请各位达人批评与斧正。
做了这么久,有一些心得,这个系统没有什么新的技术,delphi+Oracle的三层结构,代码大概有五万行,50个左右的窗体,83个Excel模版(这个最痛苦)。我觉得比较重要的技术有:
1、多线程的数据+Excel模版生成报表。采用多线程是由于有时生成的报表比较大,数据比较多,时间很长,在状态栏监视多线程进行的状态;采用Excel是因为他们对Excel比较熟悉,在生成饼图、棒图之类的图形的时候,可以调用Excel强大的功能(偷懒而已:))。由于报表众多,我一次次的重构,希望找出报表的通性,可是情况太复杂了,代码写的很长。最后做了一个自定义报表模块,可以根据规则,增加新的报表,充分利用数据。
2、灵活的数据统计。由于对数据统计要求比较高,要做的很灵活,这点也是很伤脑筋的。我做的统计有这么几步,先选择一定范围的人员,对这批人员进行任意的增减(有时要统计各个单位一把手的情况,这点在程序中很难办,算了,交给你自己选择吧,呵呵),再对统计项目的任意两两组合(两两组合30种可能+单位类别6种+任意选择若干单位6种),或者生成统计年报(需要统计的项目非常多,你看看中组部的统计年报就知道我的痛苦了),最后生成excel报表和图形。
3、非常感谢ClientDataSet。程序需要在几个地方把看到的数据导出,上传给上级单位,再导入。幸好delphi有ClientDataSet,由于数据库是oracle,又不是桌面型的数据库,ClientDataSet.SaveToFile和ClientDataSet.LoadFromFile帮了大忙。如果你想用delphi做三层,一定要熟读李维的分布式多层应用系统。其中ClientDataSet的Data和Delta属性最为重要。
4、整个过程中熟悉了Oracle的一般使用,可惜没能更深入。
5、界面经过几次大改版,得到一条最最重要的经验与大家分享:做系统前,先调查一下领导(尤其是一把手)最喜欢的、最常用的软件界面,模仿它,没错的。
6、最后 ,收获最大的还是弄清了干部管理的流程,虽然这辈子也当不成什么干部,但是社会经验是无法用言语表达的。
7、这个系统有一定的通用性,适合推广,如果你有兴趣可以与我联系。它与市面上的几个干部管理系统相比...算了,不说了。
wyddr 于验收会前夕