苦思多日不得解,100分求票据打印软件设计思路,模板设计.
现在要做一个票据打印软件.目前主要问题卡在了: 票据模板如何做. 由于目前市面上各式各样的票据种类太多,想做一个开放式的软件, 有什么新票据出来. 把模板发个用户 由用户导入就可以使用. 这样就要求开票界面必须只有一个,界面上的控件信息也需要放入模板导入,票据背景图片也需要放入模板中. 那么界面上的事件以及每个控件的事件如何处理呢?难道每个控件的事件也需要放入模板中吗? 这样别人就可以看到源代码了. 大家有什么好的建议吗?
------解决方案--------------------按照你现在的想法,你可以定义一个基础票据类,然后其他不同的票据类继承这个类,并在美种票据类里实现画出票据的虚拟方法.然后可以把类序列话成保存到机器上的文件.每次加载不同的文件进行绘制.如果你怕人家看到源码,可以在序列话写文件的时候加一下密.
------解决方案--------------------从项目上说建议LZ就打印功能新建一个DLL项目,并将项目所能支持的发票种类等相关信息以属性的形式写在项目中,当有新的发票种类提供时只要将项目生成的DLL发给用户就可以了。
就具体操作来说,可以用工厂模式设计一个类,该类负责生成你要的类,具体代码请参见petshop4.0的DALFactory项目,相关资料在网上很多,在这里我就不罗嗦了。
------解决方案--------------------写个一个工厂类,为每一种票据提供一个窗口,由工厂类负责创建合适的窗口。