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

        ?

        基于平臺(tái)的報(bào)表研究與實(shí)現(xiàn)

        2012-09-15 10:46:07舒清錄廖明梅
        大理大學(xué)學(xué)報(bào) 2012年4期
        關(guān)鍵詞:用戶(hù)系統(tǒng)

        舒清錄,廖明梅

        (臨滄師范高等專(zhuān)科學(xué)校信息科學(xué)與技術(shù)系,云南臨滄677000)

        舒清錄,廖明梅

        (臨滄師范高等專(zhuān)科學(xué)校信息科學(xué)與技術(shù)系,云南臨滄677000)

        在MIS系統(tǒng)中,設(shè)計(jì)一個(gè)既要滿(mǎn)足系統(tǒng)功能又要符合用戶(hù)習(xí)慣的報(bào)表,是MIS系統(tǒng)的重點(diǎn)和難點(diǎn)。在.NET環(huán)境下,以在線(xiàn)評(píng)教系統(tǒng)為基礎(chǔ),討論一個(gè)基于結(jié)構(gòu)可變的數(shù)據(jù)源,通過(guò)與COM組件通訊,實(shí)現(xiàn)了系統(tǒng)與Excel組件無(wú)縫連接的動(dòng)態(tài)的中國(guó)式報(bào)表。

        動(dòng)態(tài)報(bào)表;中國(guó)式報(bào)表;COM組件;Excel報(bào)表

        報(bào)表是用表格、圖表等格式來(lái)動(dòng)態(tài)顯示數(shù)據(jù)的,在MIS系統(tǒng)中占有重要地位,其設(shè)計(jì)制作也是MIS系統(tǒng)開(kāi)發(fā)的重點(diǎn)和難點(diǎn)之一。特別是中國(guó)式報(bào)表,以其數(shù)據(jù)展示的緊湊性,方便用戶(hù)對(duì)數(shù)據(jù)作出快速的比較和掃描,符合中國(guó)人對(duì)數(shù)據(jù)報(bào)表的需求和審美觀,其自動(dòng)生成更需要使用特殊的處理方法。在VisualStudio.NET環(huán)境中提供兩種報(bào)表,一是水晶報(bào)表〔1〕,因其功能強(qiáng)大而受到很多開(kāi)發(fā)者的青睞,但是其并非微軟的,要部署到項(xiàng)目中需要花費(fèi)不菲的注冊(cè)費(fèi),而且水晶報(bào)表設(shè)置較復(fù)雜,不易上手;再者報(bào)表的樣式是在報(bào)表生成器生成設(shè)計(jì)時(shí)就事先確定的,即報(bào)表的字段是固定的,增減某些列,還需修改報(bào)表配置文件和數(shù)據(jù)源文件。二是Report Viewer報(bào)表,它是微軟自己開(kāi)發(fā)的報(bào)表控件,支持呈現(xiàn)表格格式數(shù)據(jù)和圖表,并且還可以導(dǎo)出為Excel和PDF文件〔2〕。但報(bào)表組件不豐富,不支持最終用戶(hù)自定義報(bào)表格式,如果客戶(hù)對(duì)報(bào)表格式需求較為復(fù)雜時(shí),其比較難以適應(yīng)。

        在線(xiàn)評(píng)教系統(tǒng)是一個(gè)對(duì)教師一學(xué)期教學(xué)情況的評(píng)價(jià),要求對(duì)各類(lèi)別所有課程和教師的授課情況做出相應(yīng)的評(píng)價(jià)。報(bào)表對(duì)評(píng)價(jià)項(xiàng)目以及各項(xiàng)目下的小項(xiàng)投票的數(shù)目以及百分比情況比較關(guān)注,從此需求來(lái)看,此報(bào)表具有了中國(guó)式報(bào)表特點(diǎn)。

        結(jié)合以上分析,本文提出了利用C#語(yǔ)言無(wú)縫連接〔3〕Excel產(chǎn)生復(fù)雜中國(guó)式報(bào)表的思路并對(duì)其在實(shí)際項(xiàng)目中的應(yīng)用作出了詳細(xì)的闡述。主要考慮到Excel它不僅能夠方便地處理表格和進(jìn)行圖形分析,有強(qiáng)大的數(shù)據(jù)的自動(dòng)處理和計(jì)算功能,數(shù)據(jù)能被用戶(hù)二次利用;而且企業(yè)的業(yè)務(wù)人員大多熟悉Excel軟件,這樣業(yè)務(wù)人員無(wú)須再花費(fèi)時(shí)間和精力去學(xué)習(xí)新的報(bào)表工具。

        1 Excel對(duì)象模型與.NET的無(wú)縫連接

        要利用Excel的Active Automate功能,實(shí)現(xiàn)數(shù)據(jù)報(bào)表的輸出,必須要與Excel對(duì)象模型提供的對(duì)象進(jìn)行交互。微軟的Excel對(duì)象模型包括了數(shù)百個(gè)可供用戶(hù)交互的對(duì)象〔4〕,本文主要使用到Application,Workbook,Worksheet,Range四個(gè)類(lèi)以及它們的成員。其中Application對(duì)象處于Excel對(duì)象模型的頂層,表示整個(gè)Excel應(yīng)用程序;Workbook對(duì)象處于Application對(duì)象的下層,表示一個(gè)Excel工作薄文件;Worksheet對(duì)象包含于Workbook對(duì)象,表示一個(gè)Excel工作表;Range對(duì)象包含于Worksheet對(duì)象之中,表示Excel工作表中的一個(gè)或多個(gè)單元格。

        Excel組件屬于COM組件,是非受管代碼,與.NET組件的受管代碼類(lèi)型完全不同。但在.NET環(huán)境中,提供了非受管代碼的COM組建向非受管代碼的.NET組件轉(zhuǎn)換的接口,實(shí)現(xiàn).NET與COM組件的無(wú)縫連接。

        2 本系統(tǒng)的特點(diǎn)和創(chuàng)新

        2.1 數(shù)據(jù)源結(jié)構(gòu)的動(dòng)態(tài)可變性,增強(qiáng)系統(tǒng)的通用性根據(jù)不同的教學(xué)對(duì)象,采用不同的調(diào)查問(wèn)卷模板,及時(shí)、有效地反饋教學(xué)和學(xué)生反應(yīng),是問(wèn)卷系統(tǒng)應(yīng)具有的基本功能。本系統(tǒng)中,用戶(hù)可以根據(jù)自己的調(diào)查對(duì)象定義不同的問(wèn)卷模板,把不同模板的數(shù)據(jù)存入表中。系統(tǒng)通過(guò)存儲(chǔ)過(guò)程、動(dòng)態(tài)構(gòu)造SQL語(yǔ)句(實(shí)現(xiàn)由表1到表3的轉(zhuǎn)換SQL語(yǔ)句字符串)等技術(shù),自動(dòng)把模板轉(zhuǎn)換為有利于投票數(shù)據(jù)存儲(chǔ)的物理表(類(lèi)似表3的結(jié)構(gòu)),最后通過(guò)ADO.NET、VBA等技術(shù)控制Excel在客戶(hù)端自動(dòng)生成復(fù)雜的中國(guó)式統(tǒng)計(jì)報(bào)表(類(lèi)似表2的Excel電子表格)。

        在表1中,第1列為問(wèn)卷內(nèi)容,第2列為問(wèn)卷內(nèi)容選項(xiàng),以#號(hào)作為分隔符,其中1、2、3等分別代表各問(wèn)卷選項(xiàng)。瀏覽器端投票時(shí),數(shù)據(jù)主要存入類(lèi)似表3存儲(chǔ)結(jié)構(gòu)中,為生成動(dòng)態(tài)Excel報(bào)表打下基礎(chǔ)。

        本系統(tǒng)設(shè)計(jì)的動(dòng)態(tài)報(bào)表主要是實(shí)現(xiàn)由表1到表3,最后形成表2的Excel報(bào)表樣式的轉(zhuǎn)換過(guò)程,具體的算法實(shí)現(xiàn)見(jiàn)第3部分的相關(guān)偽代碼。在整個(gè)過(guò)程中,表1的第1、2列是可變的(可增加、刪除),表2的結(jié)構(gòu)也會(huì)隨表3的變化而自動(dòng)調(diào)整,使系統(tǒng)生成的報(bào)表具有很強(qiáng)的適用性和通用性。

        表1 問(wèn)卷模板

        表2 Excel報(bào)表

        表3 問(wèn)卷存儲(chǔ)表

        2.2 充分發(fā)揮Excel的計(jì)算能力,減少主程序計(jì)算任務(wù)以Excel 2003為例,其提供了數(shù)據(jù)庫(kù),統(tǒng)計(jì)等11類(lèi)不同種類(lèi)的函數(shù)〔5〕,用戶(hù)還可以自定義各種公式,通過(guò)這些函數(shù)公式可創(chuàng)建并完成各種復(fù)雜的運(yùn)算,使Excel具有強(qiáng)大的計(jì)算能力。在.NET環(huán)境中,通過(guò)VBA調(diào)用這些函數(shù)公式完成相關(guān)數(shù)據(jù)的計(jì)算,減少主程序計(jì)算任務(wù)。

        在本系統(tǒng)中大部分的數(shù)據(jù)都是從數(shù)據(jù)庫(kù)直接查詢(xún)出來(lái)的,但有些數(shù)據(jù)還需要通過(guò)計(jì)算而得,比如問(wèn)卷回收率、各子項(xiàng)投票在回收問(wèn)卷數(shù)中占的比例等數(shù)據(jù)。如果這些數(shù)據(jù)都在主程序中計(jì)算并存儲(chǔ),都將耗費(fèi)系統(tǒng)一定的計(jì)算時(shí)間和存儲(chǔ)空間。

        2.3 中國(guó)式報(bào)表,符合用戶(hù)對(duì)報(bào)表的審美需求國(guó)外的報(bào)表樣式規(guī)整,沒(méi)有格線(xiàn),表頭簡(jiǎn)單,沒(méi)有斜線(xiàn)表頭、分層分組,在系統(tǒng)中的運(yùn)用也相對(duì)簡(jiǎn)單,現(xiàn)在很多開(kāi)發(fā)環(huán)境里自帶的就是類(lèi)似此類(lèi)報(bào)表。但從滿(mǎn)足中國(guó)企業(yè)實(shí)際需求來(lái)說(shuō),顯得不夠直觀、美觀,不太符合中國(guó)人的審美需求。

        中國(guó)式報(bào)表的最大優(yōu)點(diǎn)就是它的緊湊性。通常在一頁(yè)面的空間里,可以顯示大量的信息,用戶(hù)可快捷地對(duì)數(shù)據(jù)做出查詢(xún)和檢測(cè)。

        3 報(bào)表在MIS系統(tǒng)中的實(shí)現(xiàn)

        要利用COM組件,首先將組件引入到.NET環(huán)境中。在項(xiàng)目中打開(kāi)添加引用對(duì)話(huà)框,選擇COM欄,在COM列表中找到“Microsoft Excel 11.0 Object Library”,確定即可〔6〕。這樣.NET就會(huì)自動(dòng)產(chǎn)生相應(yīng)的.NET組件文件,即可在.NET環(huán)境中正常使用。

        下面就是程序?qū)崿F(xiàn)的主要偽代碼。

        Private void Dowork(){

        Excel.Application excel;//定義Excel對(duì)象

        Excel._Workbook xBook;//定義Excel工作簿對(duì)象

        通過(guò)ADO.NET獲取模板數(shù)據(jù)集dt_struc(t類(lèi)似表1)

        通過(guò)ADO.NET獲取評(píng)價(jià)數(shù)據(jù)集dt_mb(類(lèi)似表3)

        通過(guò)SaveFileDialog獲取文件存放位置存入FileName

        try{

        添加新工作簿XBook

        獲取當(dāng)前活動(dòng)工作表XSheet

        通過(guò)range,mergeCells生成標(biāo)題行,占第1行

        通過(guò)range,mergeCells生成統(tǒng)計(jì)信息(統(tǒng)計(jì)部門(mén),統(tǒng)計(jì)人,時(shí)間),占第2行

        Fo(ri=0;i<13;i++){//報(bào)表中前固定13列,從第3行開(kāi)始

        合并此列的第3、4行單元格

        將dt_mb〔i〕.Columns中的數(shù)據(jù)寫(xiě)入合并后的單元格

        }

        Fo(rj=0;j

        根據(jù)表1,取出并分離子項(xiàng)目(以#為分隔符)存入temp2〔〕中

        獲取子項(xiàng)目數(shù)目itemNumber

        通過(guò)range,mergeCells合并單元格,每個(gè)項(xiàng)目占2列

        將dt_struc〔tj〕〔1〕中的數(shù)據(jù)寫(xiě)入合并后的單元格

        Fo(rk=0;k

        合并此行的2列

        把temp2〔k〕中的數(shù)據(jù)寫(xiě)入合并單元格

        }

        }

        Fo(ri=0;i

        Fo(rj=0;j<13;j++){

        把dt_mb〔i〕〔j〕的數(shù)據(jù)寫(xiě)入單元格

        range.FormulaR1C1="=RC〔-1〕/RC〔-2〕"http://計(jì)算回收率

        range.NumberFormatLocal="0.0%";//并將其設(shè)置為百分比

        }

        Fo(rk=13;k

        把dt_mb〔i〕〔k〕的數(shù)據(jù)寫(xiě)入單元格

        range.FormulaR1C1="=RC〔-1〕/回收問(wèn)卷數(shù)"http://計(jì)算子項(xiàng)占有比例

        range.NumberFormatLocal="0.0%";//并將其設(shè)置為百分比

        }

        }

        通過(guò)borders.LineStyle添加表格邊框

        通過(guò)HorizontalAlignment設(shè)置對(duì)齊方式

        選中Cells〔5,1〕單元格,通過(guò)FreezePanes凍結(jié)窗格

        通過(guò)PageSetup.PrintTitleRows=”$1:$4”,設(shè)置打印標(biāo)題行

        通過(guò)SaveCopyAs把創(chuàng)建的文件保存到FileName中

        通過(guò)GetWindowThreadProcessId()API函數(shù)獲取Excel線(xiàn)程的id號(hào)〔7〕

        通過(guò)GetProcessById(參數(shù)).Kil(l),結(jié)束當(dāng)前Excel進(jìn)程

        }

        catch{

        拋出“程序調(diào)用Excel遇到問(wèn)題,請(qǐng)檢查或重新安裝MSofficeExcel”異常

        }

        }

        以班級(jí)人數(shù)的80%為抽樣樣本,通過(guò)學(xué)生在瀏覽器端投票,最終得到的效如圖1所示。

        圖1 報(bào)表效果圖

        4 總結(jié)

        通過(guò)闡述了Visual Studio.NET提供的不同報(bào)表的優(yōu)缺點(diǎn),以及選擇Excel作為數(shù)據(jù)報(bào)表的理由。本文圍繞Excel對(duì)象模型和.NET環(huán)境,介紹了一種生成數(shù)據(jù)源結(jié)構(gòu)動(dòng)態(tài)可變、符合用戶(hù)對(duì)報(bào)表的審美需求的中國(guó)式報(bào)表。希望能為其它MIS項(xiàng)目開(kāi)發(fā)的動(dòng)態(tài)報(bào)表的實(shí)現(xiàn)思路提供參考。

        〔1〕李明明.VS.net中用后臺(tái)線(xiàn)程向Excel中導(dǎo)入數(shù)據(jù)的研究〔J〕.測(cè)控技術(shù),2011(8):83-86.

        〔2〕周金橋.ASP.NET夜話(huà)〔M〕.北京:電子工業(yè)出版社,2009.

        〔3〕吳曉敏.政府信息資源目錄體系與交換體系建設(shè)再探〔J〕.信息化建設(shè),2005(Z1):40-42.

        〔4〕Ken Getz.從.NET開(kāi)發(fā)人員度理解Excel對(duì)象模型〔DB/OL〕.(2004-10-27).http://msdn.microsoft.com/zh-cn/library/aa168292(v= office.11).aspx.

        〔5〕陳國(guó)華.基于Excel的報(bào)表引擎的研究與設(shè)計(jì)〔J〕.計(jì)算機(jī)工程與設(shè)計(jì),2004,25(4):526-529.

        〔6〕朱波,張峰.ASP.NET平臺(tái)上基于OFFICE操作集的報(bào)表生成方案〔J〕.實(shí)驗(yàn)室研究與探索,2007,26(10):59-62.

        〔7〕宋建松.基于ole技術(shù)調(diào)用EXCEL實(shí)現(xiàn)復(fù)雜報(bào)表生成〔J〕.內(nèi)蒙古電大學(xué)刊,2006(10):40-41.

        (責(zé)任編輯 袁 霞)

        On Research and Development of Excel Report Based on.NET Platform

        SHU Qinglu,LIAO Mingmei
        (Information Techonology Depart,Lincang Teachers College,Lincang,Yunnan 677000,China)

        In the MIS system,the design of a report meeting both system function and user's habits is important and difficult.In this paper,on the basis of online teaching evaluation system and.NET environment,a model of structure-based variable data sources is discussed to realize a dynamic Chinese-style report of seamless connection with Excel component by communicating with the COM component.

        dynamic report;Chinese-style report;COM component;Excel report

        TP311

        A

        1672-2345(2012)04-0018-04

        2011-11-02

        2011-11-17

        舒清錄,講師,主要從事數(shù)據(jù)庫(kù)開(kāi)發(fā)、WEB開(kāi)發(fā)與應(yīng)用研究.

        猜你喜歡
        用戶(hù)系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        Camera360:拍出5億用戶(hù)
        亚洲性日韩一区二区三区| 色丁香在线观看| 国产高清一级毛片在线看| 日韩女优一区二区在线观看 | 91精品在线免费| 亚洲熟女av在线观看| 亚洲午夜成人精品无码色欲| 亚洲国产精品sss在线观看av | 一本色道久久亚洲综合| 亚洲精品成人网线在线播放va| 热久久久久久久| 国产一品二品三品精品久久| 色婷婷久久亚洲综合看片| 波多野42部无码喷潮| 亚洲av无码片在线播放| 日本加勒比一区二区在线观看| 蜜桃视频在线看一区二区三区 | 国产97色在线 | 日韩| 亚洲AV肉丝网站一区二区无码| 亚洲国产综合精品中文| 免费无码专区毛片高潮喷水| 美丽的熟妇中文字幕| 99在线国产视频| 中文资源在线一区二区三区av| 色欲aⅴ亚洲情无码av| 亚洲无码精品免费片| 国产一区二区三区影片| av在线观看一区二区三区| 亚洲精品久久中文字幕| 久久亚洲日本免费高清一区| 黑丝美腿国产在线观看| 四虎影视成人永久免费观看视频| 国产精品多人P群无码| 在线一区二区三区免费视频观看| 色欲一区二区三区精品a片| 亚洲啪啪综合av一区| 亚洲av中文无码乱人伦在线咪咕| 亚洲一区二区三区高清在线观看 | 亚洲蜜芽在线精品一区| 久久人妻一区二区三区免费| 精品少妇人妻av无码久久|