一个采用Qt开发的生成word报表的框架,属于半成品。
配置word模板,通过替换书签的方式,按照配置生成对应的word文件。
- 为报表建立1个word模板,对其中需要修改的图、表、文字设置好书签
- 在程序中导入这个模板,对每一个书签设置不同的编辑方式
- 把这个word模板的编辑方式保存为1个配置文件,配置文件为xml格式
- 以后通过在界面上简单的设置参数,点击按钮,就可以自动生成这个模板对应的报表
预留了接口,每个图表的生成方式对应需要实现一个类,这个类需继承自CModelBase,必须实现如下几个函数:
////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary> 生成参数设置的显示布局. 并显示对应的数据 </summary>
///
/// <returns> null if it fails, else the parameter set widget. </returns>
////////////////////////////////////////////////////////////////////////////////////////////////////
virtual CModelBaseWidget* GenParamSetWidget(QWidget *parent=0);
////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary> 生成XML格式的模型节点, 保存自己的配置信息. </summary>
///
/// <returns> The xml node. </returns>
////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void GenXmlModelNode(QDomDocument &doc, QDomElement &node);
////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary> 生成一个显示部件,图或者是表. </summary>
///
/// <returns> The display widget. </returns>
////////////////////////////////////////////////////////////////////////////////////////////////////
virtual QWidget* GenDisplayWidget();
每个类就是1个小的模型,类工厂采用反射机制,根据模型名称,动态生成不同类。