莫家國,陳海平,謝鎮(zhèn)祥,吳朝鑫
(廣西特種設(shè)備檢驗研究院柳州分院,廣西柳州 545006)
我國特種設(shè)備總量達1816.23 萬臺,每年檢驗記錄與報告數(shù)量將近4000 萬份,數(shù)量巨大的檢驗報告出具工作使得檢驗機構(gòu)的“人機矛盾”日益嚴峻。當前特種設(shè)備檢驗報告管理系統(tǒng)對報告生成主要處理方式:制作不同Web 報告模板,然后調(diào)用數(shù)據(jù)庫信息填充模板表單再生成檢驗報告。Web 報告模板要求支持數(shù)據(jù)填充與提取、具有復雜的數(shù)據(jù)處理邏輯關(guān)系、版面格式要求規(guī)范、統(tǒng)一,因此對于報告品種繁多的特種設(shè)備檢驗報告管理系統(tǒng)而言,報告模板制作難度非常大。而且檢驗技術(shù)規(guī)范經(jīng)常修訂,規(guī)范重新修訂都需要檢驗機構(gòu)花費大量時間和經(jīng)費重新制作200 多份Web 報告模板。目前Web 報告模板制作的方法主要以下2 種:①基于Crystal Reports 開發(fā)的,不支持文檔直接導入,需要技術(shù)人員逐行編輯,逐個表單設(shè)置屬性,制作周期長,制作人員要求高;②基于JimuReport 積木報表開發(fā),支持表單在線拖拽設(shè)計,功能涵蓋數(shù)據(jù)報表、打印設(shè)計等,有效降低報告模板開發(fā)難度與縮短制作周期。但是積木報表只支持Excel 文檔導入,而特種設(shè)備報告模板主要以Word 文檔存儲居多,因此積木報表制作報告模板時必須將Word 文檔復制到Excel 文檔中進行重排版面后才能使用,報告制作人員要求雖然不高,制作工作仍然很大。因此,基于Word 文檔研究一種高效、簡單的報告模板制作方法對特種設(shè)備檢驗檢測行業(yè)發(fā)展有著極其重要的意義。
檢驗報告生成主要流程包含以下4 個環(huán)節(jié),如圖1 所示。
圖1 檢驗報告生成流程
打開報告Word 文檔,調(diào)整報告模板格式,加載安裝Word模板制作專用插件,根據(jù)報告文檔需要填寫的信息選擇插件中相應字段信息關(guān)聯(lián)表單控件屬性,然后將表單控件信息添加到模板中保存。
將制作好的Word 模板上傳檢驗報告管理系統(tǒng),系統(tǒng)后臺程序讀取Word 模板中相關(guān)信息,并提取表單控件的屬性保存至模板數(shù)據(jù)庫,Web 報告模板生成時自動加載模板數(shù)據(jù)庫信息渲染頁面。
打開報告查看窗口時,根據(jù)報告的版本編號,系統(tǒng)自動加載相應版本的html 文件,同時調(diào)用模板數(shù)據(jù)庫中該版本的控件屬性動態(tài)生成表單控件,顯示于查看窗口。檢驗人員根據(jù)現(xiàn)場檢驗設(shè)備的產(chǎn)品編號,通過“導入”按鈕實現(xiàn)將系統(tǒng)存儲的設(shè)備信息快速填充至Web 報告中的基礎(chǔ)信息欄,Web 報告中的其他項目由操作人員錄入。檢驗完成后,報告信息保存到數(shù)據(jù)庫,報告再次打開時,系統(tǒng)自動調(diào)用數(shù)據(jù)庫信息填充整個報告Web 模板進行顯示與編輯。
系統(tǒng)將Web 報告直接轉(zhuǎn)換成pdf 文件,調(diào)用電子簽名程序進行簽名和加密,最后生成帶有電子簽章pdf 版檢驗報告。
考慮到特種設(shè)備檢驗報告模板較多,且時常需要更新調(diào)整,系統(tǒng)設(shè)置有Word 模板下載功能。對下載的模板進行修改后,再次上傳,新上傳的模板可以結(jié)合已有的檢驗信息重新生成報告。
Word 模板專用插件可以實現(xiàn)調(diào)用檢驗報告管理系統(tǒng)數(shù)據(jù)庫信息,初始化表單控件基本屬性,簡化制作Word 模板表單控件的工序,快速將表單控件插入到Word 文檔中。所有的表單控件插入完成后,保存Word 模板,則表單屬性自動生成Attribute.XML 文件。將制作好的Word 模板上傳至檢驗報告管理系統(tǒng),系統(tǒng)后臺提取Attribute.XML 的內(nèi)容存儲數(shù)據(jù)庫,同時將Word 模板轉(zhuǎn)為pdf 文檔,再使用pdf2htmlEX 將pdf 文檔轉(zhuǎn)換成html 文檔,將html 文檔保存為報告Web 模板。Web 模板在瀏覽器端顯示時,系統(tǒng)加載Attribute.XML 中表單控件屬性使用POI將html 文檔的表單標簽解析成為Word 模板所設(shè)計的表單控件,實現(xiàn)Web 報告表單數(shù)據(jù)的錄入與顯示。
模板制作插件是基于java 語言專為特種設(shè)備報告模板設(shè)計而開發(fā)的軟件工具,設(shè)置有通過權(quán)限登錄管理方式遠程連接檢驗報告管理系統(tǒng)數(shù)據(jù)庫,可快速獲取與報告模板匹配的字段信息,并加載到設(shè)置界面右列屬性框,如圖2 所示。制作人員根據(jù)Word 模板內(nèi)容制作不同的表單控件時,只需雙擊與表單控件相關(guān)的字段即可以自動初始化控件基本屬性,如選擇雙擊“使用狀態(tài)”字段,控件屬性會自動添加“使用狀態(tài)”的相關(guān)信息,還可以根據(jù)表單控件實際用途添加其他屬性,屬性設(shè)置完成后,點擊確定,控件的name 屬性將會在Word 模板中以“{{XXXX}}”字樣標簽進行顯示,而控件的“使用狀態(tài)”相關(guān)屬性則自動保存至Attribute.XML 文檔。插件設(shè)置有輸入框、行內(nèi)循環(huán)、單列、多選擇框、單選擇框等多類型控件供用戶選擇使用,人機交互界面簡單,操作方便,對操作人員熟練程度要求不高,通過培訓或查看說明書都可以輕松完成制作和改動模板。制作完成的模板是一個普通的Word 文件,可繼續(xù)修改,也可直接上傳到服務器端解析為新的Web 模板。
圖2 輸入框界面
Web 頁面具有服務器控件形式越豐富,軟件操作界面就越友好。為了能讓Web 報告頁面可生成更多的服務器控件,以提高報告錄入效率,模板制作插件設(shè)置有以下3 種類型的控件,這3 類控件在Web 報告模板中可以解析相應的服務器控件。
(1)輸入框類型:針對一般字段的屬性值,如設(shè)備使用單位。其類型可以為字符、數(shù)字、日期、布爾值、圖片,設(shè)置不同類型屬性后,生成Web 頁面,自動解析為與html 對應控件的屬性,如設(shè)置日期類型,則生成Web 頁面的日期控件。
(2)行內(nèi)循環(huán)類型:該類型針對檢驗中的表格中的多行多列采集設(shè)置,可以快速填充模板中多列表格。
(3)選擇框類型:針對固定屬性控件選擇使用,默認單選,可以進行多選,提高檢驗報告錄入效率。
打開檢驗報告模板Word 文件,安裝制作插件,Word 工具欄中會出現(xiàn)“加載項”菜單。點擊“設(shè)置URL”彈出遠程服務器連接窗口,輸入服務器網(wǎng)址、數(shù)據(jù)庫管理用戶名、密碼,確定后即可實現(xiàn)插件與遠程服務器數(shù)據(jù)通信。點擊“設(shè)置模板”,根據(jù)當前Word文檔設(shè)備屬性選擇設(shè)備種類,再選擇模板類型“記錄”或“報告”,保存即可將從遠程服務器讀取該種類的設(shè)備信息,并加載到右列屬性框內(nèi)。將光標放Word 文檔需要添加表單處,選擇左上角控件,控件類型由用戶根據(jù)實際需要選擇,彈出控件屬性框,選擇右列屬性框的字段信息關(guān)聯(lián)表單屬性,設(shè)置表單其他屬性后保存,即可完成一個表單控件的添加,其他表單控件按上述流程逐一添加,添加所有表單控件后保存,即可完成模板的制作。
Word 模板上傳至服務器后,系統(tǒng)自動調(diào)用相關(guān)函數(shù)讀取XML文件,保存控件屬性到數(shù)據(jù)庫,各個屬性字段分別保存數(shù)據(jù)庫不同字段,以Uuid 作為關(guān)鍵字段,控件屬性代碼如下:
調(diào)用相關(guān)函數(shù)WordToHtml()將Word 文檔轉(zhuǎn)html 文檔,首先使用函數(shù)rendPdf()將Word 文檔轉(zhuǎn)pdf 文檔,再調(diào)用pdf2htmlEX 函數(shù)將pdf 文檔轉(zhuǎn)換html 文檔保存于服務器,html 文檔頁面顯示時根據(jù)coMPanion 中標注提取控件name 屬性,并查詢數(shù)據(jù)庫中的其他屬性,通過POI 進行渲染頁面,相關(guān)代碼如下:
經(jīng)測試驗證,通過pdf2htmlEX 將Word 文檔轉(zhuǎn)換html 文檔的保真率遠高于Word 文檔直接另存為html 文檔,pdf2htmlEX將Word 文檔轉(zhuǎn)html 文檔方式更適合檢驗報告管理系統(tǒng)的應用。檢驗報告Web 頁面如圖3 所示,從報告顯示結(jié)果來看報告格式和信息顯示達到預期效果,該檢驗報告生成方式滿足了特種設(shè)備檢驗管理系統(tǒng)應用需求。
圖3 檢驗報告Web 頁面顯示
通過開發(fā)Word 模板專用制作插件直接調(diào)用檢驗報告管理系統(tǒng)數(shù)據(jù)庫信息初始化表單控件基本屬性,簡單快捷制作Word 模板表單控件,并設(shè)置3 種常用類型控件,實現(xiàn)完成快速報告模板的制作,解決了特種設(shè)備檢驗管理系統(tǒng)大量檢驗報告模板制作的難題。系統(tǒng)采用通過pdf2htmlEX 和POI 對Word 模板進行轉(zhuǎn)換與解析渲染的方法,檢驗報告格式保真率得到保障,用戶操作界面更為友好。