刘慧英,李莹莹,孙景峰
(西北工业大学 自 动化学院,陕西 西 安 7 10129)
各领域每天都有大量的报表需要编制,各类报表的测试项目、参数很多,试验数据类型多样化(包括图像、表格、实验报告文档等),因此运用计算机技术加强试验数据自动化管理,提高试验管理的质量,为各类系统,尤其是军用系统,提供准确可靠、高质量的试验数据和判断依据,对增强我国综合国力具有十分重要的战略意义和现实意义。
在报表的自动生成方面,文献[1]采用VBA编程。VBA是实现Word文档自动生成的强有力的编程工具,但在软件重用性与代码安全性上存在缺陷和漏洞,不能满足继承和封装的要求。文献[2]采用Delphi来实现。Delphi与BDE的无缝集成,以及Delphi提供的现成数据库操作控件,使得Delphi在数据库支持上有很大优势,但其在兼容性和稳定性等方面存在着许多的不足。文献[3]介绍了用VC++与VBA实现复杂报表自动生成的方法,但是该方法不支持文字、图片等其他内容的插入[4]。
本文在VC++开发平台上,使用C++语言,利用COM编程技术,在源代码中调用Word中的 OLE自动化对象,结合XML的DOM技术实现报表界面的动态加载,最终实现复杂报表的自动生成。
OLE(Object Linking and Embedding,对象链接与嵌入)是一种为Windows设计的交互进程通信技术,它建立在COM(Component Object Model,组件对象模型)基础之上。要调用Word提供的OLE自动化对象,可以通过Word提供的对象库实现。
XML(Extensible Markup Language,可扩展标记语言)允许用户按照XML规则自定义标签,但它对规则的要求十分严格。微软提供一个MSXML.DLL的动态链接库,它也是一个COM对象库,里面封装了进行XML解析所需要的所有必要的对象。……