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

        ?

        基于.NET模式的WEB報表服務(wù)中報表格式轉(zhuǎn)換的設(shè)計與實現(xiàn)

        2010-08-23 08:33:36倪問尹陳順平
        制造業(yè)自動化 2010年7期
        關(guān)鍵詞:序列化報表實體

        倪問尹,陳順平,尹 鋒

        NI Wen-yin, CHEN Shun-ping, YIN Feng

        (長沙大學(xué),長沙 410003)

        0 引言

        報表是用表格、圖表等格式來動態(tài)顯示數(shù)據(jù)的一種方式,即指定數(shù)據(jù)以指定運算方法得出結(jié)果后,以指定樣式在指定頁面上的特殊表現(xiàn)形式。目前,Web報表已成為報表發(fā)展的一個主流方向[1]。目前國內(nèi)外主流Web報表產(chǎn)品,如水晶報表(Crystal Report)、Style Report、Brio、MSTR、和勤報表、用友華表等,其基本思路都是利用特定文件格式生成報表,通用性、兼容性較弱。應(yīng)此,格式轉(zhuǎn)換的設(shè)計與實現(xiàn)成為通用WEB報表服務(wù)的基礎(chǔ),也是解決開放式架構(gòu)和系統(tǒng)集成的核心問題。

        本系統(tǒng)基于.NET平臺開發(fā),根據(jù)用戶自定義在服務(wù)器端實現(xiàn)報表格式自動轉(zhuǎn)換,將報表XML表現(xiàn)后利用服務(wù)器端的組件解析生成HTML文檔,利用XML本身強大的可擴(kuò)展性、可復(fù)用性和自解釋性實現(xiàn)通用的WEB報表服務(wù)[3~5]。系統(tǒng)采用.NET Framework用于生成、部署、運行 XML Web Services 和應(yīng)用程序,使用SQL數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)存儲,使用 C#語言進(jìn)行程序編輯,具備在線定制與在線運行功能。

        1 本系統(tǒng)中報表文件定義

        1.1 報表模型

        影響報表樣式變化的因素有應(yīng)用領(lǐng)域、用戶需求和個人愛好等,其最終都可以歸結(jié)為以下幾種報表模型的組合:列表、分組報表、嵌套報表、交叉報表、圖形報表等。

        1.2 報表結(jié)構(gòu)

        常見的報表的結(jié)構(gòu)布局為表頭(Report Header)、表尾(Report Footer)、頁眉(Page Header)、頁腳(Page Header)、分組(Group)、主體(Detail)、合計(Summary)等。

        1.3 報表元素

        按照報表元素的層次,組成報表的元素可分成報表根元素、容器元素和實體元素三種。

        2 規(guī)則映射

        從報表對象到格式報表文件之間就是一個規(guī)則映射過程[6,7]。其主要思路是:將從應(yīng)用程序中導(dǎo)入的應(yīng)用對象與從規(guī)則庫中導(dǎo)入的規(guī)則子集進(jìn)行匹配,按匹配成功的規(guī)則執(zhí)行動作,將結(jié)果輸出給應(yīng)用程序?;诨居成浼夹g(shù)實現(xiàn)的系統(tǒng)稱作規(guī)則引擎,即根據(jù)規(guī)則中包含的指定過濾條件,判斷能否匹配運行時刻的實時條件來執(zhí)行規(guī)則中所規(guī)定的動作。四個基本要素是:信息元Information Unit(包含特定事件所有信息的對象,如信息元類型、相關(guān)規(guī)則集、通用屬性及相關(guān)信息等[8])、信息服務(wù)Information Services、規(guī)則集Rule Se、隊列管理器Queue Manager(管理來自不同信息服務(wù)的信息元對象)。其實現(xiàn)如圖1所示。

        圖1 規(guī)則映射技術(shù)的實現(xiàn)

        3 報表格式轉(zhuǎn)換的實現(xiàn)

        3.1 TXT報表格式的描述

        設(shè)計報表類TxtReport封裝報表的屬性和對報表的操作,通過該報表對象實現(xiàn)對報表的訪問、修改、發(fā)布等操作,并封裝對象序列化的過程。將設(shè)計的報表保存為.txt格式的報表定義文件的過程,即報表對象序列化的過程[9]。其UML圖如圖2所示。

        圖2 報表類TxtReport的UML圖

        其中,主要屬性包括:ReportName(報表名稱)、PageWidth(報表頁寬度)、PageHeight(報表頁高度)等。

        主要操作方法包括:CreatNewReport()創(chuàng)建一個空的報表、SaveToFile()保存當(dāng)前報表、DeplayReport(path:string)將當(dāng)前報表發(fā)布到指定目錄path中等。

        將所有報表實體元素的共同屬性和操作方法抽象出來,構(gòu)造一個報表元素基類TxtObject。各種具體的報表實體元素類繼承自TxtObject,擁有獨特屬性,并且重寫了三個重要函數(shù):

        1)Draw():在報表設(shè)計界面上畫出該報表元素;

        2)LoadFromStream(Stream:TStream):加載序列化后的報表實體元素對象;

        3)SaveToStream(Stream:TStream):保存該報表實體元素對象,即序列化。

        TxtObject類的UML圖如圖3所示,每個報表元素類中都封裝了對象序列化的過程(子類的UML圖略)。

        圖3 TxtObject類的UML圖

        3.2 XML報表格式的描述

        1)根元素<MsReport attribute=”value”></MsReport>

        報表定義文件中的根元素,用MsReport標(biāo)識,每個報表定義文件中有且只有一個根元素。其中attribute表示屬性名,value表示屬性值。

        2)容器元素

        區(qū)域是報表的重要組成部分,一個完全的報表包括若干個區(qū)域,每個區(qū)域可作為報表的一個容器元素,包括表頭、分組、報表主體、總結(jié)等幾個區(qū)域[10]。

        3)實體元素

        用標(biāo)識rectangle、staticText、textField、chart等來表示報表實體元素。

        3.3 格式轉(zhuǎn)換的實現(xiàn)

        針對兩種格式的報表(ILASSⅡ中底層數(shù)據(jù).txt格式的報表和 WEB發(fā)布時通用的.xml格式報表) 定義映射規(guī)則以實現(xiàn)這兩種報表格式之間的轉(zhuǎn)換[11]。使用DOM技術(shù),對.XML格式的報表定義文件在內(nèi)存中構(gòu)造DOM樹,從樹根開始,深度遍歷每個結(jié)點,根據(jù)結(jié)點的屬性逆向構(gòu)造報表對象和報表中的每一個實體元素。當(dāng)整個DOM樹遍歷完成后,也就構(gòu)造了整個報表對象,然后將逆向構(gòu)造成的報表對象序列化得到.TXT格式的報表文件。

        假設(shè)txt文件中有以下字段:Name:***Version:*.*.* Size:10 M Repo:installed Summary:5 - Beta Description:********。在通用WEB報表服務(wù)中轉(zhuǎn)換為xml格式過程如下:

        4 結(jié)束語

        本文設(shè)計實現(xiàn)的通用WEB報表服務(wù)系統(tǒng)中報表格式的轉(zhuǎn)換,主要是針對目前WEB報表存在的問題,基于.NET平臺的體系結(jié)構(gòu)和技術(shù)特點開發(fā),實現(xiàn)了其它報表系統(tǒng)不支持的在線定制報表的功能。通過規(guī)則映射實現(xiàn)的報表通用化,即解決了不同報表格式的轉(zhuǎn)換,避免了因環(huán)境改變而不得不重新開發(fā)報表的問題,同時這種轉(zhuǎn)換具有很強的可擴(kuò)展性,只需將映射規(guī)則在規(guī)則庫中擴(kuò)展并修改報表格式轉(zhuǎn)換模塊的接口,便可以實現(xiàn)更多格式報表的定制與解析。

        [1]陳明.分布計算應(yīng)用模型[M].北京:科學(xué)出版社,2009.04:219-220.

        [2]張有明,張科,高赟.基于Access的信息管理系統(tǒng)開發(fā)實踐[J].電化教育研究,2007(02):65-68.

        [3]Lawrence, Racoon.The space efficiency of XML.Information and Software Technology,2004,46.

        [4]Kristensen,Anders.Formsheets and the XML forms language.Computer Networks,1999,31.

        [5]Michalis Petropoulos, Yannis Papakonstantinou, Vasilis Vassalos.Building XML query forms and reports with XQForms.Computer Networks,2002,39.

        [6]王李軍,陶明亮,張曙,莫琪葉.面向業(yè)務(wù)規(guī)則引擎研究[J].軟件技術(shù)與數(shù)據(jù)庫,2007(24):65-68.

        [7]彭磊.規(guī)則引擎原理分析[J].福建電腦,2007(9):42-45

        [8]蔡文,楊春燕.面向業(yè)務(wù)規(guī)則引擎研究[J].智能系統(tǒng)學(xué)報,20094(3):234-238.

        [9]李佳,付強,丁寧,等.C#開發(fā)技術(shù)大全 [M].北京:清華大學(xué)出版社,2009:538-540.

        [10]張文啟.基于AJAX的可復(fù)用Web報表系統(tǒng)的設(shè)計及實現(xiàn)[D].中山大學(xué),2009:12-13.

        [11]郭昕,武娟.基于C#語音的EPSW與CASS數(shù)據(jù)格式轉(zhuǎn)換[J].北京測繪,2009(4):78-84.

        猜你喜歡
        序列化報表實體
        如何建構(gòu)序列化閱讀教學(xué)
        甘肅教育(2020年14期)2020-09-11 07:58:36
        前海自貿(mào)區(qū):金融服務(wù)實體
        中國外匯(2019年18期)2019-11-25 01:41:54
        LabWindows/CVI中Excel報表技術(shù)研究
        從三大報表讀懂養(yǎng)豬人的成績單
        實體的可感部分與實體——兼論亞里士多德分析實體的兩種模式
        兩會進(jìn)行時:緊扣實體經(jīng)濟(jì)“釘釘子”
        振興實體經(jīng)濟(jì)地方如何“釘釘子”
        Java 反序列化漏洞研究
        作文訓(xùn)練微格化、序列化初探
        語文知識(2015年12期)2015-02-28 22:02:15
        Java序列化技術(shù)的探討
        性欧美大战久久久久久久久| 国产av剧情久久精品久久| 99久久99久久久精品蜜桃| 国产成人a∨激情视频厨房| 婷婷亚洲久悠悠色悠在线播放| 风流少妇又紧又爽又丰满| 国产精品,在线点播影院| 亚州中文字幕乱码中文字幕| 免费久久99精品国产| 啦啦啦www在线观看免费视频| 欧美老妇与zozoz0交| 亚洲乱在线播放| 亚洲精品熟女av影院| 麻豆91蜜桃传媒在线观看| 狠狠色婷婷久久综合频道日韩| 欧美精品免费观看二区| 国产精品国产三级国产在线观| 91精品国产高清久久福利| 久青草影院在线观看国产| 少妇久久久久久被弄到高潮| 国产在线无码免费视频2021| 亚洲蜜桃视频在线观看| 亚洲网站一区在线播放| 山外人精品影院| 窝窝影院午夜看片| 国产人成在线成免费视频| 可以直接在线看国产在线片网址| 国产精品 无码专区| 日韩亚洲av无码一区二区不卡| 国产日韩欧美视频成人| 色婷婷久久综合中文久久一本| 人人妻人人澡人人爽人人精品浪潮| 丰满人妻熟妇乱又伦精品软件| 久久人人做人人妻人人玩精| 色哟哟精品中文字幕乱码| 日本一区二区三级在线观看| 免费久久人人爽人人爽av| 亚洲线精品一区二区三区八戒| 日本人妖一区二区三区| 久久久亚洲熟妇熟女av| 久久99精品九九九久久婷婷|