用C++Builder制作复杂的电厂生产报表

2013-12-13 11:27:13 电力信息化  点击量: 评论 (0)
摘要:为了解生产的运行状况,电厂经常要制作一些格式复杂、数据量大的生产和管理报表,C++Builder在开发数据库方面具有强大的功能,而由于微软办公软件的普及,许多人已习惯使用电子表格处理软件Excel来完成数据
Height属性确定行列线的长度。对于行列线极不规则的复杂报表,采用QRShape组件可以很灵活地一段一段地设置行列线,而且不必运行程序就能看到报表格式的打印效果,便于及时进行修改。
设置QRLabel组件或QRMemo组件的属性完成显示数据或文字的定位、字体大小等,程序运行后执行对组件进行赋值的操作,方可看到实际数据。为避免看到报表的静态设计窗口,要将该窗口设为动态调用,程序执行Preview命令打开报表随之就释放该窗口的内存空间,该窗口被关闭,但不会关闭报表。
 
1.2  采用代码动态设计表格
有些复杂报表的特点是只有少部分内容的排列格式不规则,并且需要显示的数据量很大,虽然QRDBText可以显示大量的数据,但它只能针对格式规则的报表,而一个个地设置QRLabel组件或QRMemo组件,工作量很大。由于C++Builder的各种组件都是通过类来实现的,因此可以在程序中声明
TQRShape、TQRLabel和TQRMemo等类变量,通过循环语句来完成格式规则的部分,格式不规则的部分就逐一进行设定。虽然采用编写代码的方法设计报表直观性差,但工作效率高,修改方便。
 
2  利用OLE技术调用Excel完成复杂报表 
由于微软办公软件的普及,许多人已习惯使用电子表格处理软件Excel来完成数据统计的工作,因此如果能把经C++Builder程序处理过的数据或计算的结果传到Excel中,一方面可以扩大程序的适用面,另一方面也极大地减轻了报表格式设计的工作量,毕竟Excel的表格处理功能要比QuickRep
ort组件强大得多。在C++Builder程序中调用Excel,就要用到OLE(Object Linking and Embedding即对象的链接和嵌入)技术,即在组件的事件过程中或调用Excel的函数中建立OLE对象,然后通过设定该对象的属性和调用该对象的方法来操纵Excel。
 
2.1 建立模板
模板就是一个预设的只有格式没有数据的Excel文件,定义一个AnsiString类型变量ExcelFileName,然后将模板的路径名赋给该变量,这样通过该变量就可调用该模板了。
 
2.2 添加文件
有两个文件是调用Excel模板的程序所必须包括的,建立调用Excel模板的窗口Form,在Form.h的文件头中加入语句#include "Excel_2K_ SRVR.h",在Form. cpp的文件头中加入语句#pragma link "Excel_2K_SRVR"。
 
2.3定义调用Excel模板的变量
定义Variant类型变量Ex,Wb,Sheet。设置Ex=CreateOleObject("Excel.Applica
tion")启动Excel,用Ex.OlePropertyGet
("WorkBooks").OleProcedure("Open",
ExcelFileName.c_str())打开Excel模板,设置Wb=Ex.OlePropertyGet("ActiveWork
Book")获取当前默认的工作簿,设置Sheet=
Wb.OlePropertyGet("ActiveSheet")获取
当前
大云网官方微信售电那点事儿

责任编辑:和硕涵

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞