亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Web的數(shù)據(jù)打印技術(shù)的研究與實現(xiàn)

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

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

        關(guān)鍵詞:中間件;XML;XSL;Document;數(shù)據(jù)打??;Web

        0 引言

        隨著數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)的發(fā)展以及互聯(lián)網(wǎng)的普及,基于B/S(Browser/Server)模式的軟件應(yīng)用越來越廣泛。大多數(shù)管理信息系統(tǒng)在應(yīng)用中都有數(shù)據(jù)打印需求,因此對Web數(shù)據(jù)打印的研究非常重要。

        目前常用的Web數(shù)據(jù)打印的方式有:

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

        模板打?。豪瞄_發(fā)工具(如Java)開發(fā)一個ActiveX控件,安裝在需要打印的客戶端,用戶自定義打印格式并以模板文件的形式存儲,只需傳遞相應(yīng)的數(shù)據(jù)給對應(yīng)的模板文件就可以按照用戶要求打印。這種方式的優(yōu)點為不需要開發(fā)人員修改程序,用戶可以利用開發(fā)人員提供模板修改工具直接修改模板文件保存所需的格式。缺點是開發(fā)此模板處理工具比較復(fù)雜,或要向?qū)I(yè)公司購買類似的工具。

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

        1 中間件技術(shù)生成XML數(shù)據(jù)

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

        Web應(yīng)用服務(wù)器調(diào)用中間件(EJB、COM)接口,通過設(shè)置的參數(shù)獲得封裝的XML數(shù)據(jù)片段。下面我們在VJ++環(huán)境中考慮XML數(shù)據(jù)的生成。

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

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

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

        其中:函數(shù)getEnprByCondition以字符串形式返回企業(yè)XML信息;

        參數(shù)pageRecord是分頁傳遞數(shù)據(jù)時每頁顯示的記錄數(shù);

        參數(shù)pageNum是分頁傳遞數(shù)據(jù)時第pageNum頁的數(shù)據(jù);

        參數(shù)QueryCondition是獲取數(shù)據(jù)設(shè)置的過濾條件;

        參數(shù)SortCondition是獲取數(shù)據(jù)設(shè)置的排序條件。

        2 解決方案

        下面給出3種解決方案:

        2.1 XML與XSL相結(jié)合生成動態(tài)的HTML

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

        操作步驟如下:

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

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

        (3)用戶預(yù)覽確認(rèn)是否符合需求,若格式不合,繼續(xù)執(zhí)行步驟(1),否則打印數(shù)據(jù)。

        2.2×ML數(shù)據(jù)片段導(dǎo)入EXCEL

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

        圖6打印數(shù)據(jù)導(dǎo)入EXCEL

        部分代碼如下:

        2.3×ML數(shù)據(jù)與Document對象動態(tài)輸出HTML文件

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

        部分代碼如下:

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

        //創(chuàng)建XMLDOM對象

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

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

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

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

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

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

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

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

        //分頁設(shè)置,頁尾說明

        圖7 分頁打印數(shù)據(jù)

        3 方案比較

        (1)XML與XSL相結(jié)合生成動態(tài)的HTML:該方案一般適應(yīng)于單頁數(shù)據(jù)打印,可以提供豐富多樣的格式。

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

        (3)XML數(shù)據(jù)與Document對象動態(tài)輸出HTML文件:該方案適應(yīng)于數(shù)據(jù)比較多的連續(xù)打印情況。

        4 結(jié)束語

        本文介紹了在VJ++環(huán)境利用中間件(COM)封裝XML數(shù)據(jù)的方法。通過XML,結(jié)合XSL,Document等對象提出了三種打印方案,并給出相應(yīng)的實現(xiàn)。比較了三種方案的適用范圍?!皣匈Y產(chǎn)智能管理系統(tǒng)”的應(yīng)用效果表明,方案不失為通用的數(shù)據(jù)打印方法。

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

        中文字幕日韩人妻高清在线| 日本高清视频www| 亚洲va在线∨a天堂va欧美va| 欧洲一区在线观看| 日本美女性亚洲精品黄色| 人妻少妇精品中文字幕专区| 40岁大乳的熟妇在线观看| 亚洲一区综合精品狠狠爱| 日韩精品人妻少妇一区二区| 亚洲中文字幕剧情类别| 成人av鲁丝片一区二区免费| 最新69国产成人精品视频免费| 夜夜嗨av一区二区三区| 91美女片黄在线观看| 日韩人妻大奶子生活片| 日韩av无码中文字幕| 日本熟妇人妻xxxxx视频| 骚片av蜜桃精品一区| 91久久精品一区二区三区大全| 亚洲成av人片天堂网无码| 在线永久免费观看黄网站| 欧美精品高清在线xxxx| 高清少妇二区三区视频在线观看 | 麻豆AⅤ无码不卡| 情色视频在线观看一区二区三区| 亚洲精品有码日本久久久| 亚洲av日韩av无码污污网站| 国产精品高清视亚洲乱码有限公司| 白白白色视频在线观看播放| 日韩欧美中文字幕公布| 日本高清色倩视频在线观看| 国产av无码专区亚洲草草| 一区二区三区亚洲视频| 麻豆╳╳╳乱女另类| 亚洲国产精品线路久久| 国产一级黄片久久免费看| 熟女体下毛荫荫黑森林| 伊人蕉久中文字幕无码专区| 亚州五十路伊人网| 国产免费观看久久黄av麻豆| 欧美内射深喉中文字幕|