国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于B/S結(jié)構(gòu)遠(yuǎn)程web報(bào)表打印技術(shù)的研究與實(shí)現(xiàn)

2009-07-05 10:02
現(xiàn)代經(jīng)濟(jì)信息 2009年23期
關(guān)鍵詞:規(guī)整控件報(bào)表

周 屹

摘要:本系統(tǒng)使用XML作為報(bào)表的描述語(yǔ)言,利用.NET技術(shù)編寫(xiě)打印控件。在打印報(bào)表時(shí),把打印控件和報(bào)表傳遞給客戶端(瀏覽器)。系統(tǒng)根據(jù)用戶的要求,結(jié)合不同報(bào)表模板自動(dòng)、動(dòng)態(tài)的生成相應(yīng)報(bào)表文件并完成打印。系統(tǒng)提供了強(qiáng)大的數(shù)據(jù)篩選、分析功能,為用戶決策提供了進(jìn)一步支持。

關(guān)鍵詞:WEB報(bào)表XML.NET控件打印

隨著信息技術(shù)的普及與發(fā)展,在管理信息系統(tǒng)中,報(bào)表打印,作為不可缺少的一部分已被我們接受。可以這樣說(shuō),我們的應(yīng)用系統(tǒng)絕大多數(shù)都涉及到報(bào)表的打印問(wèn)題。

一、B/s結(jié)構(gòu)及報(bào)表打印的主要困難

因特網(wǎng)的出現(xiàn)給人們信息交流帶來(lái)了一場(chǎng)新的革命,通過(guò)它,人與人之間的時(shí)空距離大大縮短,工作效率大大提高。由于信息共享與效率提高的需要,用于企業(yè)內(nèi)部的Clien/Server結(jié)構(gòu)的應(yīng)用程序已逐漸不能滿足人們的需要。越來(lái)越多的Browser/Server結(jié)構(gòu)的應(yīng)用程序被提了出來(lái)。雖然B/S結(jié)構(gòu)的誕生帶來(lái)了不少好處,但也有許多不足。其中一個(gè)重要的問(wèn)題是,報(bào)表打印明顯不如以前靈活、規(guī)范。許多普通的功能,如紙張的換頁(yè)排版、復(fù)雜報(bào)表的精確定位等,都無(wú)法做到像C/S結(jié)構(gòu)下那樣方便。要打印一張現(xiàn)在瀏覽器上看到的報(bào)表,其打印方式將僅僅是按照普通的頁(yè)面來(lái)處理,每一頁(yè)的頁(yè)眉、頁(yè)腳、標(biāo)題及表頭都無(wú)法根據(jù)用戶的要求來(lái)實(shí)現(xiàn),特別是對(duì)于一些復(fù)雜報(bào)表和需要套打的報(bào)表更是無(wú)能為力。

目前解決WEB報(bào)表打印的途徑:水晶報(bào)表、使用現(xiàn)成的打印控件、AetiveX控件。

二、B/S結(jié)構(gòu)下遠(yuǎn)程web報(bào)表打印系統(tǒng)的設(shè)計(jì)

(一)系統(tǒng)總體結(jié)構(gòu)。整個(gè)系統(tǒng)分成了三大部分。第一部分,為報(bào)表設(shè)計(jì)用戶根據(jù)自己的需要設(shè)計(jì)出相應(yīng)的報(bào)表模板存入數(shù)據(jù)庫(kù)中。第二部分,為報(bào)表生成部分。用戶選擇相應(yīng)模板,服務(wù)器解析相應(yīng)模板并且結(jié)合用戶輸入的一些參數(shù),動(dòng)態(tài)地生成了我們所需要的報(bào)表文件。第三部分,即報(bào)表的打印過(guò)程,就是分別把打印控件和第二部分中生成的報(bào)表文件傳送到客戶端,在本地進(jìn)行解析打印,直接控制打印機(jī)進(jìn)行輸出的過(guò)程。

(二)系統(tǒng)工作流程。對(duì)整個(gè)系統(tǒng)的工作流程,也分三大部分進(jìn)行闡述。其中報(bào)表生成器部分僅對(duì)規(guī)整報(bào)表適用。

1、報(bào)表設(shè)計(jì)器部分。在本系統(tǒng)中,只是對(duì)規(guī)整報(bào)表設(shè)計(jì)器進(jìn)行了實(shí)現(xiàn),具體步驟和方法如下:

首先,用戶在瀏覽器中輸入數(shù)據(jù)庫(kù)名稱(chēng),遠(yuǎn)程連接數(shù)據(jù)庫(kù)服務(wù)器。若連接成功,則用該庫(kù)中的所有表名動(dòng)態(tài)地填充下拉列表框,用戶從此下拉列表中選擇所需的數(shù)據(jù)表。第二步,輸入頁(yè)面設(shè)置信息。第三步,輸入報(bào)表的列數(shù)。第四步,輸入報(bào)表名稱(chēng)和附加條目。第五步,點(diǎn)擊完成按鈕,生成報(bào)表模板存入數(shù)據(jù)庫(kù)中。

2、報(bào)表文件生成部分。(1)把模板數(shù)據(jù)庫(kù)中現(xiàn)有的所有報(bào)表模板的名稱(chēng)動(dòng)態(tài)地填入下拉列表框中供用戶選擇。(2)客戶端選擇所需打印的報(bào)表模板。(3)根據(jù)提取出的seleet語(yǔ)句,連接數(shù)據(jù)庫(kù)服務(wù)器,生成我們所需要的數(shù)據(jù)集。(4)根據(jù)第二步中提取出的查詢字段接口,動(dòng)態(tài)生成報(bào)表的查詢頁(yè)面。(5)動(dòng)態(tài)地生成報(bào)表文件,供打印使用。

3、報(bào)表的打印部分。無(wú)論是報(bào)表設(shè)計(jì)器還是報(bào)表生成器,它們最終的結(jié)果都是為了生成符合我們規(guī)定的XML報(bào)表文件,把它傳輸?shù)娇蛻舳诉M(jìn)行打印。而完成這些打印工作的則是通過(guò)我們的編寫(xiě)的打印控件進(jìn)行的。通過(guò)打印控件對(duì)報(bào)表文件的解析和對(duì)打印機(jī)的控制,來(lái)實(shí)現(xiàn)我們所需要的諸如分頁(yè)、精確定位、格式控制等一系列功能。

(三)系統(tǒng)解決的主要問(wèn)題。本系統(tǒng)的出發(fā)點(diǎn)主要是為了解決B/S結(jié)構(gòu)下報(bào)表打印的一些難點(diǎn)問(wèn)題;為一般的小型系統(tǒng)不花費(fèi)大量精力和財(cái)力的前提下,很好地解決B/S結(jié)構(gòu)下遠(yuǎn)程報(bào)表打印的一些常見(jiàn)問(wèn)題,主要包括以下幾種:解決規(guī)整報(bào)表的分頁(yè)問(wèn)題、頁(yè)碼的打印。附加條目和復(fù)雜報(bào)表的精確定位、簡(jiǎn)單套打的實(shí)現(xiàn)、對(duì)簡(jiǎn)單的圖形報(bào)表的打印輸出做了一些初步的研究。

三、報(bào)表結(jié)構(gòu)的設(shè)計(jì)

(一)幾種常見(jiàn)的報(bào)表類(lèi)型

1、規(guī)整報(bào)表:規(guī)整報(bào)表又稱(chēng)長(zhǎng)報(bào)表。它通常要分幾頁(yè)顯示,也是最常見(jiàn)的報(bào)表,其最大的特點(diǎn)是在固定的表頭下重復(fù)著若干行類(lèi)型相同的記錄。

2、復(fù)雜報(bào)表:之所以稱(chēng)之為復(fù)雜報(bào)表,是因?yàn)樗男辛械姆植疾幌褚?guī)整報(bào)表那樣整齊、有規(guī)律。

3、套打報(bào)表:所謂套打,就是指在打印紙的規(guī)定位置上輸入相應(yīng)的信息。與其它報(bào)表打印不同的是,它并不要完整的打印出報(bào)表的標(biāo)題、邊框等信息,我們需要的是在規(guī)定的地方打印出相應(yīng)的數(shù)據(jù)就可以了。

(二)報(bào)表設(shè)計(jì)器的實(shí)現(xiàn)

1、設(shè)計(jì)思路、要生成一個(gè)報(bào)表模板,首先確定的是這個(gè)報(bào)表所需的數(shù)據(jù)源;接下來(lái)確定頁(yè)面設(shè)置中的一系列信息;確定報(bào)表的列數(shù);設(shè)置報(bào)表名稱(chēng)、附加條目信息、各列的標(biāo)題、各列的寬度;為每列選擇對(duì)應(yīng)的字段:選擇用作篩選數(shù)據(jù)用的接口字段與需要進(jìn)行小計(jì)的字段。我們把所有的這些信息提取出來(lái),按照相應(yīng)的規(guī)則組成XML模板。

2、步驟與方法。1) 先需要確定報(bào)表設(shè)計(jì)的數(shù)據(jù)源。2) 列出數(shù)據(jù)庫(kù)中的所有表名,動(dòng)態(tài)地填充到下拉列表框中,供用戶選擇。3) 輸入頁(yè)面設(shè)置信息和報(bào)表的列數(shù)。4) 彈出報(bào)表設(shè)計(jì)界面。5) 報(bào)表模板的生成。

四、結(jié)論與展望

本系統(tǒng)主要完成了遠(yuǎn)程報(bào)表打印時(shí),瀏覽器打印功能無(wú)法完成的一些功能。通過(guò)自己編寫(xiě)的打印控件在客戶端對(duì)XML格式的報(bào)表文件進(jìn)行格式解析,直接控制本地打印機(jī)進(jìn)行輸出。對(duì)于打印控件和報(bào)表文件,是利用H,ITP協(xié)議通過(guò)默認(rèn)的80端口進(jìn)行傳輸,從一定程度上提高了系統(tǒng)的安全性。

雖然本系統(tǒng)只給出了簡(jiǎn)單的規(guī)整報(bào)表設(shè)計(jì)器,但是其它類(lèi)型的報(bào)表模板的結(jié)構(gòu)設(shè)計(jì)是作者對(duì)現(xiàn)有的比較流行的設(shè)計(jì)器生成的模板文件進(jìn)行分析后總結(jié)出來(lái)的,以后完全可以在B/S結(jié)構(gòu)下完成其它類(lèi)型報(bào)表的設(shè)計(jì)器。在結(jié)構(gòu)的組織上,本系統(tǒng)充分考慮到以后的擴(kuò)展,如果我們要增加其它類(lèi)型報(bào)表的打印,只要定義出相應(yīng)的格式控制標(biāo)簽和增加相應(yīng)的解析程序,對(duì)原來(lái)的結(jié)構(gòu)無(wú)需做大的改動(dòng)。

雖然打印控件是用.NET技術(shù)編寫(xiě)的,但是它的運(yùn)行對(duì)服務(wù)器端沒(méi)有任何要求。如果服務(wù)器端能夠用其它的方式提供相應(yīng)格式的XML報(bào)表文件,利用此打印控件將不會(huì)對(duì)原來(lái)的服務(wù)器系統(tǒng)造成任何負(fù)擔(dān)。而對(duì)遠(yuǎn)程客戶端,則不需要在打印時(shí)進(jìn)行下載注冊(cè)或是安裝特定的打印系統(tǒng)。

猜你喜歡
規(guī)整控件報(bào)表
300kt/a硫酸系統(tǒng)規(guī)整填料使用情況簡(jiǎn)介
LabWindows/CVI中Excel報(bào)表技術(shù)研究
從三大報(bào)表讀懂養(yǎng)豬人的成績(jī)單
電梯的建筑化藝術(shù)探索
基于發(fā)音機(jī)制的貪婪自適應(yīng)語(yǔ)音時(shí)長(zhǎng)規(guī)整算法
ASP.NET服務(wù)器端驗(yàn)證控件的使用
月度報(bào)表
月度報(bào)表
Spreadsheet控件在Delphi數(shù)據(jù)庫(kù)系統(tǒng)中的編程與應(yīng)用
喀什市| 个旧市| 华宁县| 旬邑县| 福安市| 白河县| 双鸭山市| 库车县| 彭泽县| 沾益县| 应用必备| 安乡县| 开远市| 宝兴县| 鹤峰县| 宜阳县| 湘潭市| 樟树市| 张家港市| 南平市| 丹东市| 正宁县| 始兴县| 连城县| 饶阳县| 元谋县| 东明县| 正宁县| 郧西县| 原平市| 大冶市| 宜兰市| 崇仁县| 深圳市| 九龙坡区| 互助| 荣成市| 中方县| 连江县| 东明县| 巴彦县|