999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Web的數據打印技術的研究與實現

2007-01-01 00:00:00唐澤龍
計算機時代 2007年5期

摘要:針對Web數據打印缺乏靈活性的問題,使用中間件動態生成的XML,結合XSL如Document對象,提出了幾種用戶可自定義打印格式的通用解決方案。該方案應用于“國有資產智能管理系統”項目取得了良好的效果。

關鍵詞:中間件;XML;XSL;Document;數據打印;Web

0 引言

隨著數據庫技術與網絡的發展以及互聯網的普及,基于B/S(Browser/Server)模式的軟件應用越來越廣泛。大多數管理信息系統在應用中都有數據打印需求,因此對Web數據打印的研究非常重要。

目前常用的Web數據打印的方式有:

簡單應用:將需要打印的數據以表格標志(<table>、<tr>、<th>、<td>)組織成HTML文件,以瀏覽器(如IE)顯示并打印。其優點為處理與實現簡單。缺點是缺乏靈活性,不能由用戶自定義格式,形式太單調;數據多頁顯示時,分頁打印定位不準確。

模板打印:利用開發工具(如Java)開發一個ActiveX控件,安裝在需要打印的客戶端,用戶自定義打印格式并以模板文件的形式存儲,只需傳遞相應的數據給對應的模板文件就可以按照用戶要求打印。這種方式的優點為不需要開發人員修改程序,用戶可以利用開發人員提供模板修改工具直接修改模板文件保存所需的格式。缺點是開發此模板處理工具比較復雜,或要向專業公司購買類似的工具。

本文克服了Web數據打印的不靈活性以及模板處理工具復雜性等缺陷,利用中間件技術(EJB、COM)動態生成XML,結合不同的XSL文件,得到形式豐富多樣的格式,以滿足用戶自定義的需求;又可以通過參數設置選擇不同的數據項(數據字段)得到不同的打印數據;還可以設置顯示頁面數據的記錄數,結合Document對象動態生成HTML文件以確保分頁定位準確的數據打印。實際應用證明,方案靈活、實現簡單,是可行的通用方法。

1 中間件技術生成XML數據

XML(extensible Markup Language)是網絡第二代語言,可以定義無窮無盡的標志來描述文件中的任何數據元素,突破了HTML固定標記集合的約束,使文件的內容更豐富并組成一個完整的信息體系。XML具有良好的數據結構,已成為廣泛接受的數據傳輸標準。

Web應用服務器調用中間件(EJB、COM)接口,通過設置的參數獲得封裝的XML數據片段。下面我們在VJ++環境中考慮XML數據的生成。

在VJ++中使用XML接口主要是通過微軟提供的Msxm12.dll實現。該動態鏈接庫提供了對符合XML標準的所有對象進行操作的方法。其中,主要的接口有:DOMDocument26,IXMLDOMNode,IXMLDOMNodeList,IXMLDOMNamedMap,IXMLDOMAtrribute等。

在國資項目中獲取企業信息的XML片段則通過COM對象Enpr的接口實現:

public String getEnprByCondition(int pageNum,intpageRecord,String QueryCondition,String SortCondition)

其中:函數getEnprByCondition以字符串形式返回企業XML信息;

參數pageRecord是分頁傳遞數據時每頁顯示的記錄數;

參數pageNum是分頁傳遞數據時第pageNum頁的數據;

參數QueryCondition是獲取數據設置的過濾條件;

參數SortCondition是獲取數據設置的排序條件。

2 解決方案

下面給出3種解決方案:

2.1 XML與XSL相結合生成動態的HTML

使用此方案,用戶在數據打印前可通過預覽確認數據是否符合要求,并通過數據字段的選擇確認打印內容(如圖1,圖2);若頁面數據太多等,可重設“頁記錄數”等參數加以調整(如圖3,圖4);對同一XML片段,若數據排列格式需變化可通過選擇預定義的XSL文件作為參數調整生成動態的HTML(如圖5),同時也可直接修改XSL文件,從而得到形式多樣的打印格式。

操作步驟如下:

(1)用戶通過瀏覽器(browser)設置參數:XSL文件名,頁記錄數,第幾頁,查詢條件等,然后向Web服務器請求。

(2)Web服務器響應,獲取參數并調用中間件(COM)對象接口生成XML片段,同時選擇XSL文件,處理數據節點,以HTML格式反饋給客戶端。

(3)用戶預覽確認是否符合需求,若格式不合,繼續執行步驟(1),否則打印數據。

2.2×ML數據片段導入EXCEL

在Web頁面中嵌入MSOWC(Microsoft Office WebComponents)的Spreadsheet Component對象,將XML數據賦給此對象,利用Spreadsheet Component對象的“導出到Excel”功能即可生成Excel文件(如圖6)。

圖6打印數據導入EXCEL

部分代碼如下:

2.3×ML數據與Document對象動態輸出HTML文件

Web應用服務器調用中間件生成XML數據,頁面(ASP)通過Microsoft.XMLDOM類對象就可以訪問XML數據中的任何節點內容,并由頁面內置對象Document的Write方法動態輸出HTML文件(如圖7)。分頁設置通過CSS控制。打印數據字段、內容以及頁記錄數由用戶通過參數設置。

部分代碼如下:

var xmIDoc=new ActiveXObject(\"Microsoft.XMLDOM\"):

//創建XMLDOM對象

xmIDoc.10ad(XMLData);//XMLDOM對象裝載XML數據

document.writef(\"<style media=print>.PageNext

{page-break-after:always;}</style>”)://分頁標志

var xmlNodes=xmIDoc.selectNodes(\"//Record\");//生成記錄節點

xmlNodes item(i).selectSingleNode(\"Field[@FName=

'OrganType'n\").text;//獲取第i條記錄的字段“OrganType”的值

document.write(\"<br><center>共\"+pageCount+\"頁第\"

+curPage+\"頁</center><div class='PageNext'></div>”)

//分頁設置,頁尾說明

圖7 分頁打印數據

3 方案比較

(1)XML與XSL相結合生成動態的HTML:該方案一般適應于單頁數據打印,可以提供豐富多樣的格式。

(2)XML數據片段導入EXCEL:該方案適應于需要調整打印數據的情況,通過導出Excel到文件,用戶可對數據進行處理,是較靈活的一種方式。

(3)XML數據與Document對象動態輸出HTML文件:該方案適應于數據比較多的連續打印情況。

4 結束語

本文介紹了在VJ++環境利用中間件(COM)封裝XML數據的方法。通過XML,結合XSL,Document等對象提出了三種打印方案,并給出相應的實現。比較了三種方案的適用范圍。“國有資產智能管理系統”的應用效果表明,方案不失為通用的數據打印方法。

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 国产区人妖精品人妖精品视频| 国产成人狂喷潮在线观看2345 | 孕妇高潮太爽了在线观看免费| 欧美精品啪啪| 小13箩利洗澡无码视频免费网站| 嫩草在线视频| 91久久偷偷做嫩草影院精品| 人人爽人人爽人人片| 香蕉久久国产超碰青草| 亚洲精品中文字幕无乱码| 成年人免费国产视频| 五月丁香伊人啪啪手机免费观看| 丰满少妇αⅴ无码区| 欧美国产综合视频| 国产亚洲视频中文字幕视频| 69av在线| 久夜色精品国产噜噜| 久视频免费精品6| 免费高清毛片| 亚洲av无码成人专区| 国产在线视频福利资源站| 91精品国产自产在线老师啪l| 女人毛片a级大学毛片免费 | 欧美午夜在线视频| 国产91视频免费观看| 少妇精品久久久一区二区三区| 成人福利在线免费观看| 一级不卡毛片| 久久夜色撩人精品国产| 国产精品部在线观看| 人禽伦免费交视频网页播放| 亚洲精品无码久久毛片波多野吉| 2021精品国产自在现线看| 亚洲精品天堂在线观看| 久久久久亚洲av成人网人人软件 | 免费不卡在线观看av| a级毛片在线免费观看| 久久这里只精品国产99热8| a级毛片在线免费| 国产精品女主播| 最新无码专区超级碰碰碰| 99成人在线观看| 91外围女在线观看| 一级毛片在线播放免费| 红杏AV在线无码| 99精品一区二区免费视频| 熟妇人妻无乱码中文字幕真矢织江| 国产综合亚洲欧洲区精品无码| 素人激情视频福利| 啪啪国产视频| 成年人国产网站| 精品国产乱码久久久久久一区二区| 97久久免费视频| 91热爆在线| 久久综合一个色综合网| 亚洲另类色| 国产丝袜第一页| 亚洲第一区欧美国产综合| 狠狠做深爱婷婷久久一区| 在线无码av一区二区三区| 色综合久久久久8天国| 亚洲欧美精品一中文字幕| 热久久综合这里只有精品电影| 一级全免费视频播放| 人妻熟妇日韩AV在线播放| 91无码人妻精品一区| 美女被操91视频| 国产午夜人做人免费视频| 欧美亚洲欧美区| 亚洲欧美日韩精品专区| 国产成人综合网| 成人午夜视频免费看欧美| 中文字幕自拍偷拍| 自拍欧美亚洲| 超碰91免费人妻| 在线综合亚洲欧美网站| 一本无码在线观看| 亚洲最大综合网| 欧美中文字幕无线码视频| 精品一区二区三区自慰喷水| 99在线观看免费视频| 国产区在线看|