變電站監(jiān)控軟件中基于Web的變格式報表的設(shè)計與實現(xiàn)
摘 要:為了擴(kuò)展基于C/S的變電站監(jiān)控軟件通過網(wǎng)頁瀏覽報表的功能,本文設(shè)計了基于Web的變格式報表生成軟件。本設(shè)計以監(jiān)控軟件采集的變電站數(shù)據(jù)為基礎(chǔ),在網(wǎng)絡(luò)數(shù)據(jù)庫、Web服務(wù)器,瀏覽器的三層結(jié)構(gòu)下,針對不同格式的報表,通過對組成報表的圖元進(jìn)行遍歷,實現(xiàn)變格式報表在網(wǎng)頁上的生成。實踐表明,該設(shè)計可以在網(wǎng)頁上生成格式靈活多變的報表。
關(guān)鍵字:Web 變電站 變格式報表
1 引言
基于C/S(客戶端/服務(wù)器)結(jié)構(gòu)的SCADA系統(tǒng)目前已經(jīng)發(fā)展得較為成熟。它可以方便地通過串口將變電站現(xiàn)場的數(shù)據(jù)采集上來并進(jìn)行存儲等一系列操作。目前由于以太網(wǎng)技術(shù)應(yīng)用的增多和互聯(lián)網(wǎng)的普及,人們正探索設(shè)計基于Web的數(shù)據(jù)查看或數(shù)據(jù)管理軟件對上述數(shù)據(jù)進(jìn)行操作。本文就是依照這樣的思路,在一個基于C/S的變電站監(jiān)控軟件的基礎(chǔ)上設(shè)計并實現(xiàn)了基于Web的變格式報表的生成軟件。本設(shè)計建立了如圖1所示的軟件結(jié)構(gòu)模型。報表中的數(shù)據(jù)由變電站監(jiān)控軟件采集并存儲,報表格式信息由該軟件生成并存儲。通過使用網(wǎng)絡(luò)數(shù)據(jù)庫、Web服務(wù)器、瀏覽器的三層結(jié)構(gòu),由Web服務(wù)器從數(shù)據(jù)庫中提取信息,運(yùn)算處理并組織成網(wǎng)頁頁面后發(fā)向前臺瀏覽器,最終在瀏覽器上顯示變格式報表。

2 變格式報表的數(shù)據(jù)來源
在網(wǎng)頁上生成變格式報表需要三種數(shù)據(jù)或信息:報表格式信息、報表數(shù)據(jù)檢索信息和在報表中顯示的數(shù)據(jù)。本設(shè)計是在一個已有的基于C/S結(jié)構(gòu)的變電站監(jiān)控軟件的基礎(chǔ)上進(jìn)行設(shè)計開發(fā)的。如圖2所示,本軟件中生成變格式報表所需的各種信息及數(shù)據(jù),都來自該軟件,并由該軟件存儲于數(shù)據(jù)庫。
變格式報表中顯示的數(shù)據(jù)是由變電站現(xiàn)場的綜合保護(hù)單元(下位機(jī)單元)通過串口傳輸?shù)紺/S結(jié)構(gòu)的服務(wù)器端的數(shù)據(jù)。根據(jù)不同單元的不同數(shù)據(jù)類型,數(shù)據(jù)庫中設(shè)計了相應(yīng)的表格用于存儲數(shù)據(jù)。數(shù)據(jù)由變電站監(jiān)控軟件的服務(wù)器端收集上來后存儲在這些表格中。
變格式報表的格式信息和填充報表所用數(shù)據(jù)的檢索信息來自于變電站監(jiān)控軟件中的一個客戶端配置軟件——圖形組態(tài)軟件。要在網(wǎng)頁頁面上顯示一張報表,首先經(jīng)由這個軟件進(jìn)行繪制,確定報表格式和報表中顯示怎樣的數(shù)據(jù)后,再在該軟件中選擇將這張報表在網(wǎng)頁中發(fā)布。最后,這些由該軟件產(chǎn)生的格式信息和數(shù)據(jù)檢索信息就被保存到數(shù)據(jù)庫相應(yīng)的表格中,供網(wǎng)頁發(fā)布使用。

網(wǎng)絡(luò)服務(wù)器的工作以這些數(shù)據(jù)為基礎(chǔ):以報表格式信息繪制報表的大體形狀;以數(shù)據(jù)檢索信息組成查詢報表數(shù)據(jù)的SQL語言;以SQL語言中設(shè)定的條件檢索存儲在單元數(shù)據(jù)表格中的內(nèi)容。正是通過從數(shù)據(jù)庫中讀出這些數(shù)據(jù),才可以在網(wǎng)頁中重現(xiàn)要發(fā)布的報表。一張沒有在上述客戶端軟件中生成過的報表不能在網(wǎng)頁上顯示出來。
3 生成變格式報表的關(guān)鍵技術(shù)
變格式報表的生成軟件主要完成的工作可以分為兩個方面:數(shù)據(jù)庫的操作和網(wǎng)頁的生成。本設(shè)計中通過使用ADO方法對數(shù)據(jù)庫進(jìn)行操作操作,通過在Web服務(wù)器端使用ASP技術(shù)實現(xiàn)網(wǎng)頁的生成。
3.1訪問數(shù)據(jù)庫方法使用ADO方法
大多數(shù)網(wǎng)站都需要后臺數(shù)據(jù)庫的支持,本設(shè)計也需要通過對數(shù)據(jù)庫進(jìn)行讀寫操作來實現(xiàn)報表的繪制。所以本設(shè)計使用了SQL Server網(wǎng)絡(luò)數(shù)據(jù)庫,并采用ADO(ActiveX Data bbbbbb)方法為訪問數(shù)據(jù)庫的方法。
本設(shè)計首先使用VC++編程語言對原有系統(tǒng)進(jìn)行擴(kuò)充,通過使用ADO的Connection對象實現(xiàn)與數(shù)據(jù)庫的連接,使用Command對象執(zhí)行SQL 語句,對數(shù)據(jù)源進(jìn)行操作,向數(shù)據(jù)庫中寫入繪制變格式報表需要的數(shù)據(jù)信息。數(shù)據(jù)存儲完成后,本設(shè)計再在Web服務(wù)器端使用bbbbbbbb語言,同樣利用 ADO方法將數(shù)據(jù)庫中的數(shù)據(jù)讀出。Web服務(wù)器通過整理和利用這些數(shù)據(jù),完成變格式報表的繪制,將組織好的頁面發(fā)向前臺瀏覽器。
3.2服務(wù)器端使用ASP技術(shù)
本設(shè)計中使用IIS作為網(wǎng)站服務(wù)器端,在這里運(yùn)行ASP(Active Server Pages)腳本語言。ASP對于ADO方法的全面支持,并且使用ASP+SQL Server開發(fā)網(wǎng)絡(luò)應(yīng)用系統(tǒng)是十分經(jīng)典的組合。實際上,ASP實現(xiàn)的是腳本語言的運(yùn)行環(huán)境,在服務(wù)器端編程時,主要使用的是ASP提供的接口和內(nèi)置對象以及bbbbbbbb語言。
本設(shè)計中單純使用HTML語言繪制出靜態(tài)頁面部分,而利用數(shù)據(jù)庫中的信息繪制動態(tài)的頁面則需使用ASP技術(shù)。
ASP提供的內(nèi)置對象用于實現(xiàn)提取用戶在頁面上輸入的信息等一系列操作;對于訪問數(shù)據(jù)庫并對得到的數(shù)據(jù)進(jìn)行運(yùn)算、組織則通過運(yùn)行在ASP環(huán)境下的 bbbbbbbb語言實現(xiàn)。最后,通過bbbbbbbb語言和HTML語言嵌套使用,將組織好的完整的報表顯示在網(wǎng)頁頁面上。
本節(jié)只簡要介紹本文在設(shè)計過程中所用的關(guān)鍵技術(shù),如何具體地使用這些編程語言設(shè)計算法在第四節(jié)中作詳細(xì)介紹。
4 生成變格式報表的圖元遍歷
4.1圖元遍歷原因
通常一張報表由幾種圖元按照一定的格式組成。這些圖元一般包括:文字、矩形、可調(diào)節(jié)行列數(shù)的表格等。在圖形組態(tài)軟件中,這些圖元是一個個獨(dú)立的對象。由于每一個圖元都包裹在一個不可見的矩形中,所以這個矩形的大小決定了圖元的寬度和高度,這個矩形的左上角坐標(biāo)決定了圖元的位置??梢哉J(rèn)為,這個矩形的左上角坐標(biāo)是圖元的定位坐標(biāo)。在圖形組態(tài)軟件中,圖元按照包裹它的矩形決定的大小和圖元定位坐標(biāo)在運(yùn)行界面上顯示。
在網(wǎng)頁中繪制這些圖元時,服務(wù)器不能按照圖元的定位坐標(biāo)來確定圖元在頁面中的位置,所以,需要進(jìn)行圖元遍歷對已有的定位坐標(biāo)進(jìn)行處理翻譯,整合成在網(wǎng)頁中可以使用的用于定位圖元的數(shù)據(jù)。
4.2圖元遍歷方法
根據(jù)報表格式的特殊性,本設(shè)計中使用的遍歷方法可分為如圖3所示的五個步驟:

(1)坐標(biāo)排序
把各個圖元按定位坐標(biāo)的縱坐標(biāo)由小到大的順序依次排列,對于縱坐標(biāo)相同的圖元,按照定位坐標(biāo)的橫坐標(biāo)由小到大的順序依次排列。
這樣做的原因是:在圖元組態(tài)軟件的顯示界面中,坐標(biāo)的起點(diǎn)是屏幕的左上角。因為縱坐標(biāo)小的圖元安排在頁面的上方先繪制,所以圖元應(yīng)按照定位坐標(biāo)的縱坐標(biāo)由小到大的順序排列;同一縱坐標(biāo)的情況下橫向繪制的順序從左到右,所以橫坐標(biāo)小的圖元先繪制,而各圖元也應(yīng)按照定位坐標(biāo)的橫坐標(biāo)由小到大的順序排列。在網(wǎng)頁頁面中繪制圖元的時候,頁面的坐標(biāo)起點(diǎn)也是左上角,即向下是縱坐標(biāo)增大的方向,向右是橫坐標(biāo)增大的方向,所以圖元順序不變。排列圖元順序時,具體的數(shù)值并不重要,重要的是各數(shù)值之間的大小關(guān)系。這種大小關(guān)系確定了各個圖元的位置以及它們之間的相對位置。
?。?)屬性提取
區(qū)分報表中常用的圖元類型,提取和該類圖元相關(guān)的特殊屬性。
本設(shè)計中生成的報表是由多個圖元拼接而成的,這些圖元種類不多,相對固定。但由于圖元種類的區(qū)別,它們不可能具有相同的屬性,在網(wǎng)頁中生成時也需要不同的信息,所以本設(shè)計提取它們的特殊屬性并存儲在數(shù)據(jù)庫。例如:文本圖元提取文本內(nèi)容和字體字號,表格圖元提取行數(shù)和列數(shù)。 來源:www.tede.cn
?。?)圖元分組
在網(wǎng)頁中圖元按行生成,就是說是先畫完一行再畫接下來的一行。報表中同行的圖元有一定的特殊性,即它們的定位坐標(biāo)的縱坐標(biāo)相同,并且它們的圖元高度相同。這種特殊性恰巧可以滿足繪制的需要。所以,本設(shè)計選擇將同行的圖元編為一組,有幾個不同的定位坐標(biāo)的縱坐標(biāo)就將圖元編為幾組。
?。?)組內(nèi)圖元遍歷
分為一組的圖元按照它們的定位坐標(biāo)的橫坐標(biāo)由小到大的順序依次排列。在網(wǎng)頁中同時生成這一組圖元。方法是:先繪制一個表格,表格的寬為各個圖元寬度的總和,高為圖元的統(tǒng)一高度。本組中有幾個圖元就把這個表格橫向切分為幾格,第一格放置第一個圖元,第二格放置第二個圖元,依次類推。各種圖元的生成過程是繪制表格的過程,即在剛才的一格中插入一個新表格。新表格如何繪制取決于圖元的類型。
?。?)特殊情況處理
上面的遍歷方法不能滿足重疊圖元繪制。但是對于在矩形框中添加文本這樣重疊的兩個圖元,如果包裹文本圖元的矩形大小和矩形框的大小相同,本設(shè)計可以略去矩形框的繪制,只繪制一個添加了邊框的文本。由于使文本的邊框與矩形框大小相同,所以顯示于網(wǎng)頁頁面時,顯示效果不會改變。
4.3 圖元遍歷的特殊要求
這種遍歷方法邏輯清晰,算法簡單,但其對圖元坐標(biāo)的要求較高。首先,各個同行的圖元必須滿足上述的坐標(biāo)要求;其次各個圖元之間除上面所指的特殊情況外不能出現(xiàn)重疊。
4.4圖元遍歷的使用
在網(wǎng)頁中生成報表,繪制每一個圖元都是繪制一個獨(dú)立的顯示于頁面的表格,只是隨著圖元屬性的不同,各個表格的行列數(shù)與切分方式有差別。這些表格按圖元遍歷的結(jié)果排列,先排滿一行(一組的圖元),再向下移,排滿另一行,最后拼接生成一張報表。
5 實現(xiàn)的功能
在網(wǎng)頁上生成一張變格式報表,首先應(yīng)在圖形組態(tài)軟件中設(shè)計這張報表,在將報表的相關(guān)信息存入數(shù)據(jù)庫。設(shè)計好的報表如圖4所示。報表設(shè)計完成后,使用菜單選項中的網(wǎng)頁發(fā)布將報表數(shù)據(jù)進(jìn)行存儲,供生成網(wǎng)頁使用。

然后,根據(jù)數(shù)據(jù)庫中保存的信息,Web服務(wù)器通過一系列的數(shù)據(jù)運(yùn)算,將上面設(shè)計好的變格式報表在網(wǎng)頁中重現(xiàn)。運(yùn)行界面如圖5所示。
網(wǎng)頁中顯示的報表按數(shù)據(jù)類型分有:模擬量報表、累計量報表、開關(guān)量報表;按時間類型分有:年報表、月報表、日報表、季報表和自定義報表。報表中的數(shù)據(jù)一部分是根據(jù)數(shù)據(jù)檢索信息組成的查找條件在數(shù)據(jù)庫中查找整理所得,另一部分是Web服務(wù)端對這些數(shù)據(jù)進(jìn)行運(yùn)算所得的統(tǒng)計值。
6 結(jié)論
由于國內(nèi)電力系統(tǒng)使用的報表,根據(jù)使用功能的不同而格式繁多。在不同的單位企業(yè)之間,同種功能的報表其格式也有差別。所以按照既定格式生成報表,不能滿足用戶的使用要求。
本文在已有的基于C/S結(jié)構(gòu)的變電站監(jiān)控軟件的基礎(chǔ)之上設(shè)計并實現(xiàn)了變格式報表的生成軟件。在設(shè)計過程中,本文分析了多種報表的格式,通過提取它們的共性,對報表的格式進(jìn)行遍歷分析,最終實現(xiàn)了變格式報表的生成。這種報表的生成方法提高了用戶使用的靈活性,可以在網(wǎng)頁上生成不同功能、不同種類的報表。
相對于已有的按照既定格式生成報表的方法,變格式報表的生成技術(shù)具有一定的先進(jìn)性。
關(guān)鍵字:Web 變電站 變格式報表
1 引言
基于C/S(客戶端/服務(wù)器)結(jié)構(gòu)的SCADA系統(tǒng)目前已經(jīng)發(fā)展得較為成熟。它可以方便地通過串口將變電站現(xiàn)場的數(shù)據(jù)采集上來并進(jìn)行存儲等一系列操作。目前由于以太網(wǎng)技術(shù)應(yīng)用的增多和互聯(lián)網(wǎng)的普及,人們正探索設(shè)計基于Web的數(shù)據(jù)查看或數(shù)據(jù)管理軟件對上述數(shù)據(jù)進(jìn)行操作。本文就是依照這樣的思路,在一個基于C/S的變電站監(jiān)控軟件的基礎(chǔ)上設(shè)計并實現(xiàn)了基于Web的變格式報表的生成軟件。本設(shè)計建立了如圖1所示的軟件結(jié)構(gòu)模型。報表中的數(shù)據(jù)由變電站監(jiān)控軟件采集并存儲,報表格式信息由該軟件生成并存儲。通過使用網(wǎng)絡(luò)數(shù)據(jù)庫、Web服務(wù)器、瀏覽器的三層結(jié)構(gòu),由Web服務(wù)器從數(shù)據(jù)庫中提取信息,運(yùn)算處理并組織成網(wǎng)頁頁面后發(fā)向前臺瀏覽器,最終在瀏覽器上顯示變格式報表。

2 變格式報表的數(shù)據(jù)來源
在網(wǎng)頁上生成變格式報表需要三種數(shù)據(jù)或信息:報表格式信息、報表數(shù)據(jù)檢索信息和在報表中顯示的數(shù)據(jù)。本設(shè)計是在一個已有的基于C/S結(jié)構(gòu)的變電站監(jiān)控軟件的基礎(chǔ)上進(jìn)行設(shè)計開發(fā)的。如圖2所示,本軟件中生成變格式報表所需的各種信息及數(shù)據(jù),都來自該軟件,并由該軟件存儲于數(shù)據(jù)庫。
變格式報表中顯示的數(shù)據(jù)是由變電站現(xiàn)場的綜合保護(hù)單元(下位機(jī)單元)通過串口傳輸?shù)紺/S結(jié)構(gòu)的服務(wù)器端的數(shù)據(jù)。根據(jù)不同單元的不同數(shù)據(jù)類型,數(shù)據(jù)庫中設(shè)計了相應(yīng)的表格用于存儲數(shù)據(jù)。數(shù)據(jù)由變電站監(jiān)控軟件的服務(wù)器端收集上來后存儲在這些表格中。
變格式報表的格式信息和填充報表所用數(shù)據(jù)的檢索信息來自于變電站監(jiān)控軟件中的一個客戶端配置軟件——圖形組態(tài)軟件。要在網(wǎng)頁頁面上顯示一張報表,首先經(jīng)由這個軟件進(jìn)行繪制,確定報表格式和報表中顯示怎樣的數(shù)據(jù)后,再在該軟件中選擇將這張報表在網(wǎng)頁中發(fā)布。最后,這些由該軟件產(chǎn)生的格式信息和數(shù)據(jù)檢索信息就被保存到數(shù)據(jù)庫相應(yīng)的表格中,供網(wǎng)頁發(fā)布使用。

網(wǎng)絡(luò)服務(wù)器的工作以這些數(shù)據(jù)為基礎(chǔ):以報表格式信息繪制報表的大體形狀;以數(shù)據(jù)檢索信息組成查詢報表數(shù)據(jù)的SQL語言;以SQL語言中設(shè)定的條件檢索存儲在單元數(shù)據(jù)表格中的內(nèi)容。正是通過從數(shù)據(jù)庫中讀出這些數(shù)據(jù),才可以在網(wǎng)頁中重現(xiàn)要發(fā)布的報表。一張沒有在上述客戶端軟件中生成過的報表不能在網(wǎng)頁上顯示出來。
3 生成變格式報表的關(guān)鍵技術(shù)
變格式報表的生成軟件主要完成的工作可以分為兩個方面:數(shù)據(jù)庫的操作和網(wǎng)頁的生成。本設(shè)計中通過使用ADO方法對數(shù)據(jù)庫進(jìn)行操作操作,通過在Web服務(wù)器端使用ASP技術(shù)實現(xiàn)網(wǎng)頁的生成。
3.1訪問數(shù)據(jù)庫方法使用ADO方法
大多數(shù)網(wǎng)站都需要后臺數(shù)據(jù)庫的支持,本設(shè)計也需要通過對數(shù)據(jù)庫進(jìn)行讀寫操作來實現(xiàn)報表的繪制。所以本設(shè)計使用了SQL Server網(wǎng)絡(luò)數(shù)據(jù)庫,并采用ADO(ActiveX Data bbbbbb)方法為訪問數(shù)據(jù)庫的方法。
本設(shè)計首先使用VC++編程語言對原有系統(tǒng)進(jìn)行擴(kuò)充,通過使用ADO的Connection對象實現(xiàn)與數(shù)據(jù)庫的連接,使用Command對象執(zhí)行SQL 語句,對數(shù)據(jù)源進(jìn)行操作,向數(shù)據(jù)庫中寫入繪制變格式報表需要的數(shù)據(jù)信息。數(shù)據(jù)存儲完成后,本設(shè)計再在Web服務(wù)器端使用bbbbbbbb語言,同樣利用 ADO方法將數(shù)據(jù)庫中的數(shù)據(jù)讀出。Web服務(wù)器通過整理和利用這些數(shù)據(jù),完成變格式報表的繪制,將組織好的頁面發(fā)向前臺瀏覽器。
3.2服務(wù)器端使用ASP技術(shù)
本設(shè)計中使用IIS作為網(wǎng)站服務(wù)器端,在這里運(yùn)行ASP(Active Server Pages)腳本語言。ASP對于ADO方法的全面支持,并且使用ASP+SQL Server開發(fā)網(wǎng)絡(luò)應(yīng)用系統(tǒng)是十分經(jīng)典的組合。實際上,ASP實現(xiàn)的是腳本語言的運(yùn)行環(huán)境,在服務(wù)器端編程時,主要使用的是ASP提供的接口和內(nèi)置對象以及bbbbbbbb語言。
本設(shè)計中單純使用HTML語言繪制出靜態(tài)頁面部分,而利用數(shù)據(jù)庫中的信息繪制動態(tài)的頁面則需使用ASP技術(shù)。
ASP提供的內(nèi)置對象用于實現(xiàn)提取用戶在頁面上輸入的信息等一系列操作;對于訪問數(shù)據(jù)庫并對得到的數(shù)據(jù)進(jìn)行運(yùn)算、組織則通過運(yùn)行在ASP環(huán)境下的 bbbbbbbb語言實現(xiàn)。最后,通過bbbbbbbb語言和HTML語言嵌套使用,將組織好的完整的報表顯示在網(wǎng)頁頁面上。
本節(jié)只簡要介紹本文在設(shè)計過程中所用的關(guān)鍵技術(shù),如何具體地使用這些編程語言設(shè)計算法在第四節(jié)中作詳細(xì)介紹。
4 生成變格式報表的圖元遍歷
4.1圖元遍歷原因
通常一張報表由幾種圖元按照一定的格式組成。這些圖元一般包括:文字、矩形、可調(diào)節(jié)行列數(shù)的表格等。在圖形組態(tài)軟件中,這些圖元是一個個獨(dú)立的對象。由于每一個圖元都包裹在一個不可見的矩形中,所以這個矩形的大小決定了圖元的寬度和高度,這個矩形的左上角坐標(biāo)決定了圖元的位置??梢哉J(rèn)為,這個矩形的左上角坐標(biāo)是圖元的定位坐標(biāo)。在圖形組態(tài)軟件中,圖元按照包裹它的矩形決定的大小和圖元定位坐標(biāo)在運(yùn)行界面上顯示。
在網(wǎng)頁中繪制這些圖元時,服務(wù)器不能按照圖元的定位坐標(biāo)來確定圖元在頁面中的位置,所以,需要進(jìn)行圖元遍歷對已有的定位坐標(biāo)進(jìn)行處理翻譯,整合成在網(wǎng)頁中可以使用的用于定位圖元的數(shù)據(jù)。
4.2圖元遍歷方法
根據(jù)報表格式的特殊性,本設(shè)計中使用的遍歷方法可分為如圖3所示的五個步驟:

(1)坐標(biāo)排序
把各個圖元按定位坐標(biāo)的縱坐標(biāo)由小到大的順序依次排列,對于縱坐標(biāo)相同的圖元,按照定位坐標(biāo)的橫坐標(biāo)由小到大的順序依次排列。
這樣做的原因是:在圖元組態(tài)軟件的顯示界面中,坐標(biāo)的起點(diǎn)是屏幕的左上角。因為縱坐標(biāo)小的圖元安排在頁面的上方先繪制,所以圖元應(yīng)按照定位坐標(biāo)的縱坐標(biāo)由小到大的順序排列;同一縱坐標(biāo)的情況下橫向繪制的順序從左到右,所以橫坐標(biāo)小的圖元先繪制,而各圖元也應(yīng)按照定位坐標(biāo)的橫坐標(biāo)由小到大的順序排列。在網(wǎng)頁頁面中繪制圖元的時候,頁面的坐標(biāo)起點(diǎn)也是左上角,即向下是縱坐標(biāo)增大的方向,向右是橫坐標(biāo)增大的方向,所以圖元順序不變。排列圖元順序時,具體的數(shù)值并不重要,重要的是各數(shù)值之間的大小關(guān)系。這種大小關(guān)系確定了各個圖元的位置以及它們之間的相對位置。
?。?)屬性提取
區(qū)分報表中常用的圖元類型,提取和該類圖元相關(guān)的特殊屬性。
本設(shè)計中生成的報表是由多個圖元拼接而成的,這些圖元種類不多,相對固定。但由于圖元種類的區(qū)別,它們不可能具有相同的屬性,在網(wǎng)頁中生成時也需要不同的信息,所以本設(shè)計提取它們的特殊屬性并存儲在數(shù)據(jù)庫。例如:文本圖元提取文本內(nèi)容和字體字號,表格圖元提取行數(shù)和列數(shù)。 來源:www.tede.cn
?。?)圖元分組
在網(wǎng)頁中圖元按行生成,就是說是先畫完一行再畫接下來的一行。報表中同行的圖元有一定的特殊性,即它們的定位坐標(biāo)的縱坐標(biāo)相同,并且它們的圖元高度相同。這種特殊性恰巧可以滿足繪制的需要。所以,本設(shè)計選擇將同行的圖元編為一組,有幾個不同的定位坐標(biāo)的縱坐標(biāo)就將圖元編為幾組。
?。?)組內(nèi)圖元遍歷
分為一組的圖元按照它們的定位坐標(biāo)的橫坐標(biāo)由小到大的順序依次排列。在網(wǎng)頁中同時生成這一組圖元。方法是:先繪制一個表格,表格的寬為各個圖元寬度的總和,高為圖元的統(tǒng)一高度。本組中有幾個圖元就把這個表格橫向切分為幾格,第一格放置第一個圖元,第二格放置第二個圖元,依次類推。各種圖元的生成過程是繪制表格的過程,即在剛才的一格中插入一個新表格。新表格如何繪制取決于圖元的類型。
?。?)特殊情況處理
上面的遍歷方法不能滿足重疊圖元繪制。但是對于在矩形框中添加文本這樣重疊的兩個圖元,如果包裹文本圖元的矩形大小和矩形框的大小相同,本設(shè)計可以略去矩形框的繪制,只繪制一個添加了邊框的文本。由于使文本的邊框與矩形框大小相同,所以顯示于網(wǎng)頁頁面時,顯示效果不會改變。
4.3 圖元遍歷的特殊要求
這種遍歷方法邏輯清晰,算法簡單,但其對圖元坐標(biāo)的要求較高。首先,各個同行的圖元必須滿足上述的坐標(biāo)要求;其次各個圖元之間除上面所指的特殊情況外不能出現(xiàn)重疊。
4.4圖元遍歷的使用
在網(wǎng)頁中生成報表,繪制每一個圖元都是繪制一個獨(dú)立的顯示于頁面的表格,只是隨著圖元屬性的不同,各個表格的行列數(shù)與切分方式有差別。這些表格按圖元遍歷的結(jié)果排列,先排滿一行(一組的圖元),再向下移,排滿另一行,最后拼接生成一張報表。
5 實現(xiàn)的功能
在網(wǎng)頁上生成一張變格式報表,首先應(yīng)在圖形組態(tài)軟件中設(shè)計這張報表,在將報表的相關(guān)信息存入數(shù)據(jù)庫。設(shè)計好的報表如圖4所示。報表設(shè)計完成后,使用菜單選項中的網(wǎng)頁發(fā)布將報表數(shù)據(jù)進(jìn)行存儲,供生成網(wǎng)頁使用。

然后,根據(jù)數(shù)據(jù)庫中保存的信息,Web服務(wù)器通過一系列的數(shù)據(jù)運(yùn)算,將上面設(shè)計好的變格式報表在網(wǎng)頁中重現(xiàn)。運(yùn)行界面如圖5所示。
網(wǎng)頁中顯示的報表按數(shù)據(jù)類型分有:模擬量報表、累計量報表、開關(guān)量報表;按時間類型分有:年報表、月報表、日報表、季報表和自定義報表。報表中的數(shù)據(jù)一部分是根據(jù)數(shù)據(jù)檢索信息組成的查找條件在數(shù)據(jù)庫中查找整理所得,另一部分是Web服務(wù)端對這些數(shù)據(jù)進(jìn)行運(yùn)算所得的統(tǒng)計值。
6 結(jié)論
由于國內(nèi)電力系統(tǒng)使用的報表,根據(jù)使用功能的不同而格式繁多。在不同的單位企業(yè)之間,同種功能的報表其格式也有差別。所以按照既定格式生成報表,不能滿足用戶的使用要求。
本文在已有的基于C/S結(jié)構(gòu)的變電站監(jiān)控軟件的基礎(chǔ)之上設(shè)計并實現(xiàn)了變格式報表的生成軟件。在設(shè)計過程中,本文分析了多種報表的格式,通過提取它們的共性,對報表的格式進(jìn)行遍歷分析,最終實現(xiàn)了變格式報表的生成。這種報表的生成方法提高了用戶使用的靈活性,可以在網(wǎng)頁上生成不同功能、不同種類的報表。
相對于已有的按照既定格式生成報表的方法,變格式報表的生成技術(shù)具有一定的先進(jìn)性。
本文標(biāo)簽:變電站監(jiān)控軟件中基于Web的變格式報表的設(shè)計與實現(xiàn)
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《變電站監(jiān)控軟件中基于Web的變格式報表的設(shè)計與實現(xiàn)》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“變電站監(jiān)控軟件中基于Web的變格式報表的設(shè)計與實現(xiàn)”的更多資訊










