亚洲狼人综合,本道综合精品,在线看福利影,国产亚洲精品久久久玫瑰,日韩欧美精品在线观看,日韩在线国产,欧美乱码一区二区三区

用C++Builder制作復(fù)雜的電廠生產(chǎn)報(bào)表

2013-12-13 11:27:13 電力信息化  點(diǎn)擊量: 評(píng)論 (0)
摘要:為了解生產(chǎn)的運(yùn)行狀況,電廠經(jīng)常要制作一些格式復(fù)雜、數(shù)據(jù)量大的生產(chǎn)和管理報(bào)表,C++Builder在開(kāi)發(fā)數(shù)據(jù)庫(kù)方面具有強(qiáng)大的功能,而由于微軟辦公軟件的普及,許多人已習(xí)慣使用電子表格處理軟件Excel來(lái)完成數(shù)據(jù)
Height屬性確定行列線的長(zhǎng)度。對(duì)于行列線極不規(guī)則的復(fù)雜報(bào)表,采用QRShape組件可以很靈活地一段一段地設(shè)置行列線,而且不必運(yùn)行程序就能看到報(bào)表格式的打印效果,便于及時(shí)進(jìn)行修改。
設(shè)置QRLabel組件或QRMemo組件的屬性完成顯示數(shù)據(jù)或文字的定位、字體大小等,程序運(yùn)行后執(zhí)行對(duì)組件進(jìn)行賦值的操作,方可看到實(shí)際數(shù)據(jù)。為避免看到報(bào)表的靜態(tài)設(shè)計(jì)窗口,要將該窗口設(shè)為動(dòng)態(tài)調(diào)用,程序執(zhí)行Preview命令打開(kāi)報(bào)表隨之就釋放該窗口的內(nèi)存空間,該窗口被關(guān)閉,但不會(huì)關(guān)閉報(bào)表。
 
1.2  采用代碼動(dòng)態(tài)設(shè)計(jì)表格
有些復(fù)雜報(bào)表的特點(diǎn)是只有少部分內(nèi)容的排列格式不規(guī)則,并且需要顯示的數(shù)據(jù)量很大,雖然QRDBText可以顯示大量的數(shù)據(jù),但它只能針對(duì)格式規(guī)則的報(bào)表,而一個(gè)個(gè)地設(shè)置QRLabel組件或QRMemo組件,工作量很大。由于C++Builder的各種組件都是通過(guò)類(lèi)來(lái)實(shí)現(xiàn)的,因此可以在程序中聲明
TQRShape、TQRLabel和TQRMemo等類(lèi)變量,通過(guò)循環(huán)語(yǔ)句來(lái)完成格式規(guī)則的部分,格式不規(guī)則的部分就逐一進(jìn)行設(shè)定。雖然采用編寫(xiě)代碼的方法設(shè)計(jì)報(bào)表直觀性差,但工作效率高,修改方便。
 
2  利用OLE技術(shù)調(diào)用Excel完成復(fù)雜報(bào)表 
由于微軟辦公軟件的普及,許多人已習(xí)慣使用電子表格處理軟件Excel來(lái)完成數(shù)據(jù)統(tǒng)計(jì)的工作,因此如果能把經(jīng)C++Builder程序處理過(guò)的數(shù)據(jù)或計(jì)算的結(jié)果傳到Excel中,一方面可以擴(kuò)大程序的適用面,另一方面也極大地減輕了報(bào)表格式設(shè)計(jì)的工作量,畢竟Excel的表格處理功能要比QuickRep
ort組件強(qiáng)大得多。在C++Builder程序中調(diào)用Excel,就要用到OLE(Object Linking and Embedding即對(duì)象的鏈接和嵌入)技術(shù),即在組件的事件過(guò)程中或調(diào)用Excel的函數(shù)中建立OLE對(duì)象,然后通過(guò)設(shè)定該對(duì)象的屬性和調(diào)用該對(duì)象的方法來(lái)操縱Excel。
 
2.1 建立模板
模板就是一個(gè)預(yù)設(shè)的只有格式?jīng)]有數(shù)據(jù)的Excel文件,定義一個(gè)AnsiString類(lèi)型變量ExcelFileName,然后將模板的路徑名賦給該變量,這樣通過(guò)該變量就可調(diào)用該模板了。
 
2.2 添加文件
有兩個(gè)文件是調(diào)用Excel模板的程序所必須包括的,建立調(diào)用Excel模板的窗口Form,在Form.h的文件頭中加入語(yǔ)句#include "Excel_2K_ SRVR.h",在Form. cpp的文件頭中加入語(yǔ)句#pragma link "Excel_2K_SRVR"。
 
2.3定義調(diào)用Excel模板的變量
定義Variant類(lèi)型變量Ex,Wb,Sheet。設(shè)置Ex=CreateOleObject("Excel.Applica
tion")啟動(dòng)Excel,用Ex.OlePropertyGet
("WorkBooks").OleProcedure("Open",
ExcelFileName.c_str())打開(kāi)Excel模板,設(shè)置Wb=Ex.OlePropertyGet("ActiveWork
Book")獲取當(dāng)前默認(rèn)的工作簿,設(shè)置Sheet=
Wb.OlePropertyGet("ActiveSheet")獲取
當(dāng)前
大云網(wǎng)官方微信售電那點(diǎn)事兒

責(zé)任編輯:和碩涵

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
我要收藏
個(gè)贊
?