好久都没有动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的一般使用,可惜没能更深入。