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

2013-12-13 11:27:13 电力信息化  点击量: 评论 (0)
摘要:为了解生产的运行状况,电厂经常要制作一些格式复杂、数据量大的生产和管理报表,C++Builder在开发数据库方面具有强大的功能,而由于微软办公软件的普及,许多人已习惯使用电子表格处理软件Excel来完成数据
默认的工作表。
 
2.4 数据的显示
利用函数Sheet.OlePropertyGet("Cel
ls",iRows[n],iCols[n]).OlePropertySet
("Value",strData[n])就可将所需数据显示到Excel模板中相应的位置。iRows[n]和iCols[n]这两个整数型数组分别用来存储每个数据在Excel模板中所处位置的行列号,strData[n]既可以是字符型数组,也可以是非字符型数组。
 
2.5 在C++Builder程序中操纵Excel模板
因为要设定调用Excel模板的变量和显示数据的行列号,以及要对是否成功打开Excel模板进行判断,所以一般先单独定义调用Excel模板的函数,然后在C++Builder组件的事件过程直接调用该函数即可。这样一方面可增加程序的可读性,另一方面便于调试和修改。
在C++Builder程序中可以调用Excel模板,但Excel模板是否被用户关闭就无法直接反馈到C++Builder程序中,如果前次打开的Excel模板没有被关闭,当程序又一次执行调用Excel模板的函数时,Excel模板就会被另外再打开一次。为避免Excel模板被重复打开,要在C++Builder程序中设置全程变量ExcelExist来记录Excel模板的开关状态,将ExcelExist的初始值设为false。在调用Excel模板文件的函数中设置Excel模板开关状态的判断,如Excel
Exist为false,说明Excel模板没有被打开,直接调用Excel模板即可,同时将Ex
celExist设为true;如ExcelExist为true,说明Excel模板已经被打开,则利用函数
Ex.OleFunction("Quit")先关闭Excel模板,然后再打开Excel模板,显示新数据。如果用户在程序退出之前关闭了Excel模板,由于Ex是作为全程变量还保留着Crea
teOleObject("Excel. Application")的设置,因此程序会把这种情况当作Excel模板已经被打开来处理,调用函数Ex.OleFunc
tion("Quit")不会导致程序发生运行错误。在程序退出之前同样也要对变量ExcelExi
st的值进行判断,若为true则调用函数
Ex.OleFunction("Quit")关闭Excel模板,因此用户如果要单独保留该Excel模板必须在程序退出之前执行另存为操作。
由于设备条件的限制,某些参数无法自动存入数据库,需要靠人工将数据录入到数据库中。利用C++Builder程序不仅可以将数据传到Excel模板中显示,还可将用户在Excel模板中填入或修改的数据读过来,经过适当的处理再存入数据库。如果用户的数据来源于Excel文件,可以照此数据文件设置Excel模板,需要录入的数据直接由用户从数据文件中选取然后复制到Excel模板,这样就无须在C++Builder程序中单独设计数据录入界面,极大地减轻了用户的手工劳动,也提高了程序的开发效率。由于数据在Excel模板中的位置已事先在C++Builder程序中被固定,因此用户只能更改数据而不能改变其
大云网官方微信售电那点事儿

责任编辑:和硕涵

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