日期:2014-05-18  浏览次数:20775 次

苦思多日不得解,100分求票据打印软件设计思路,模板设计.
现在要做一个票据打印软件.目前主要问题卡在了:   票据模板如何做.   由于目前市面上各式各样的票据种类太多,想做一个开放式的软件,   有什么新票据出来.   把模板发个用户   由用户导入就可以使用.     这样就要求开票界面必须只有一个,界面上的控件信息也需要放入模板导入,票据背景图片也需要放入模板中.     那么界面上的事件以及每个控件的事件如何处理呢?难道每个控件的事件也需要放入模板中吗?     这样别人就可以看到源代码了.       大家有什么好的建议吗?

------解决方案--------------------
按照你现在的想法,你可以定义一个基础票据类,然后其他不同的票据类继承这个类,并在美种票据类里实现画出票据的虚拟方法.然后可以把类序列话成保存到机器上的文件.每次加载不同的文件进行绘制.如果你怕人家看到源码,可以在序列话写文件的时候加一下密.

------解决方案--------------------
从项目上说建议LZ就打印功能新建一个DLL项目,并将项目所能支持的发票种类等相关信息以属性的形式写在项目中,当有新的发票种类提供时只要将项目生成的DLL发给用户就可以了。
就具体操作来说,可以用工厂模式设计一个类,该类负责生成你要的类,具体代码请参见petshop4.0的DALFactory项目,相关资料在网上很多,在这里我就不罗嗦了。
------解决方案--------------------
写个一个工厂类,为每一种票据提供一个窗口,由工厂类负责创建合适的窗口。