• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    利用水晶報(bào)表動(dòng)態(tài)綁定數(shù)據(jù)源實(shí)現(xiàn)動(dòng)態(tài)交叉表的方法研究

    2015-10-20 02:39:24常婉綸劉豫凡西安理工大學(xué)陜西西安7008西北工業(yè)大學(xué)機(jī)電學(xué)院陜西西安7007
    關(guān)鍵詞:數(shù)據(jù)源水晶報(bào)表

    劉 輝,常婉綸,劉豫凡(.西安理工大學(xué),陜西 西安7008;.西北工業(yè)大學(xué) 機(jī)電學(xué)院 陜西 西安 7007)

    利用水晶報(bào)表動(dòng)態(tài)綁定數(shù)據(jù)源實(shí)現(xiàn)動(dòng)態(tài)交叉表的方法研究

    劉輝1,常婉綸1,劉豫凡2
    (1.西安理工大學(xué),陜西西安710082;2.西北工業(yè)大學(xué)機(jī)電學(xué)院陜西西安710072)

    為減少數(shù)據(jù)冗余,根據(jù)規(guī)范化理論設(shè)計(jì)的數(shù)據(jù)庫(kù)不能直接輸出分類匯總的結(jié)果,需要進(jìn)行轉(zhuǎn)換生成交叉表,并利用水晶報(bào)表的Push模式實(shí)現(xiàn)對(duì)交叉表的顯示。在.NET和SQL Server環(huán)境下,探討了動(dòng)態(tài)交叉表的生成和利用水晶報(bào)表動(dòng)態(tài)綁定數(shù)據(jù)源顯示數(shù)據(jù)的方法,并給出了較為詳細(xì)的實(shí)現(xiàn)過(guò)程。

    動(dòng)態(tài)交叉表;水晶報(bào)表;Push模式;動(dòng)態(tài)綁定

    0 引言

    信息系統(tǒng)中都不能缺少報(bào)表,而交叉表是種常見(jiàn)的報(bào)表形式,它將源表中的數(shù)據(jù)分組匯總后,一組列在表的左側(cè),另一組列在表的上部,從而形成一種分類匯總表格[1]。動(dòng)態(tài)交叉表是按用戶呈現(xiàn)數(shù)據(jù)的要求,不僅對(duì)數(shù)據(jù)進(jìn)行分類,同時(shí)還要根據(jù)表中數(shù)據(jù)的情況動(dòng)態(tài)創(chuàng)建列,把數(shù)據(jù)行信息置換到表格列處并進(jìn)行匯總。

    水晶報(bào)表是一款商務(wù)智能軟件,主要用于設(shè)計(jì)產(chǎn)生報(bào)表,是業(yè)內(nèi)功能最強(qiáng)的報(bào)表系統(tǒng)[2],其出現(xiàn)的目的就是使計(jì)算機(jī)參與到辦公系統(tǒng)業(yè)務(wù)流程中。

    1 問(wèn)題的提出

    以我校學(xué)生成績(jī)管理系統(tǒng)為例,為消除存儲(chǔ)異常,減少數(shù)據(jù)冗余,保證數(shù)據(jù)的完整性,按規(guī)范化設(shè)計(jì)理論設(shè)計(jì)的數(shù)據(jù)庫(kù)含多張表,其中與成績(jī)有關(guān)的3個(gè)表的關(guān)系模式學(xué)生信息表S(學(xué)號(hào)、姓名、性別、班號(hào))、課程信息表C(課號(hào)、課名)、學(xué)生成績(jī)表SC(學(xué)號(hào)、課號(hào)、學(xué)期、成績(jī))之間的關(guān)系圖如圖1所示。學(xué)生成績(jī)表中的數(shù)據(jù)形式如圖2所示。實(shí)際工作中需要打印的學(xué)生成績(jī)表如圖3所示。

    圖1 3個(gè)表的關(guān)系圖

    圖2 成績(jī)表中的數(shù)據(jù)

    由此可見(jiàn),數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù),在某些應(yīng)用中,需要生成動(dòng)態(tài)交叉表,因不同班級(jí)不同學(xué)期學(xué)生學(xué)習(xí)的課程不一樣,生成的動(dòng)態(tài)交叉表的列項(xiàng)的個(gè)數(shù)和名稱都是不固定的。經(jīng)驗(yàn)表明,水晶報(bào)表雖然功能強(qiáng)大且使用方便,但它要求設(shè)計(jì)表格時(shí)所使用的表名以及列名與使用時(shí)必須一致。本文研究了水晶報(bào)表的Pull模式和Push模式[3],提出了在數(shù)據(jù)庫(kù)端生成一個(gè)表格列項(xiàng)固定的動(dòng)態(tài)交叉表,利用Push模式動(dòng)態(tài)綁定數(shù)據(jù)源把數(shù)據(jù)推送給水晶報(bào)表引擎的方法。

    圖3 需打印的某班級(jí)學(xué)生成績(jī)單樣式

    2 生成動(dòng)態(tài)交叉表

    首先在數(shù)據(jù)庫(kù)服務(wù)器端完成列項(xiàng)名稱與個(gè)數(shù)固定的動(dòng)態(tài)交叉表的生成。設(shè)每學(xué)期最多有8門課,實(shí)現(xiàn)方法如下:

    (1)創(chuàng)建函數(shù)ufGetCourse,功能是篩選出某班對(duì)應(yīng)學(xué)期的課程,并按順序編號(hào)。運(yùn)行結(jié)果如圖4所示。

    圖4 某班某學(xué)期開(kāi)設(shè)的課程及順序編號(hào)

    (2)創(chuàng)建存儲(chǔ)過(guò)程upCreateJCB,功能是按學(xué)號(hào)對(duì)應(yīng),把順序編號(hào)為1的4號(hào)課程成績(jī)放在Cj1列中,把順序編號(hào)為2的5號(hào)課程成績(jī)放在Cj2列中,以此類推,最后計(jì)算每個(gè)學(xué)生的總評(píng)分。運(yùn)行結(jié)果如圖5所示。

    圖5 生成的動(dòng)態(tài)交叉表

    3 水晶報(bào)表動(dòng)態(tài)綁定數(shù)據(jù)源

    應(yīng)用程序的前臺(tái)界面在.NET平臺(tái)下進(jìn)行水晶報(bào)表設(shè)計(jì),采用Push模式在程序中動(dòng)態(tài)加載數(shù)據(jù)源和報(bào)表,用動(dòng)態(tài)傳參方式把表頭的cj1~cj8更換成對(duì)應(yīng)的中文課程名,方法如下:

    (1)建立解決方案。在解決方案資源管理器中添加“Crystal報(bào)表”模板。方法為:添加→新建項(xiàng)→Crystal報(bào)表→命名報(bào)表為MyCry.rpt→作為空白報(bào)表。

    (2)在字段資源管理器中通過(guò)“報(bào)表專家”完成報(bào)表設(shè)計(jì)。方法為:數(shù)據(jù)庫(kù)字段→數(shù)據(jù)庫(kù)專家→創(chuàng)建新鏈接→OLE DB(ADO)→MicrosoftOLE DB Providerfor SQL Server→填寫鏈接數(shù)據(jù)庫(kù)的信息→選擇對(duì)應(yīng)的數(shù)據(jù)庫(kù)→選擇存儲(chǔ)過(guò)程upCreateJCB→把涉及的字段拖拽到水晶報(bào)表細(xì)節(jié)欄中并填上表格線。

    (3)在字段資源管理器中添加參數(shù)字段:班級(jí)名classname、學(xué)期TermNo、Cj1~Cj8,并把這些參數(shù)字段拖拽到水晶報(bào)表的頁(yè)眉欄處。

    經(jīng)過(guò)上述過(guò)程設(shè)計(jì)的報(bào)表MyCry.rpt如圖6所示。

    圖6 設(shè)計(jì)完成的水晶報(bào)表MyCry.rpt

    (4)在窗體上放一個(gè)CrystalReportViewer控件并命名為crv,用C#編程動(dòng)態(tài)加載數(shù)據(jù)源和報(bào)表。代碼如下:

    4 結(jié)論

    本文提出了利用水晶報(bào)表顯示并打印動(dòng)態(tài)交叉表的一種方法,圖3就是本校學(xué)籍管理系統(tǒng)中用本方法打印的成績(jī)匯總表,由于來(lái)源于真實(shí)數(shù)據(jù),故姓名處進(jìn)行了處理。

    [1]張賢斌,費(fèi)樹(shù)岷.管理信息系統(tǒng)中動(dòng)態(tài)交叉表的實(shí)現(xiàn)方式研究[J].計(jì)算機(jī)應(yīng)用工程技術(shù),2008,4(4):995-996.

    [2]叢鳳俠,楊玉強(qiáng).通用水晶報(bào)表自動(dòng)生成技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(5):54-57.

    [3]錢哨,李揮劍,李繼哲,等.C#WinForm實(shí)踐開(kāi)發(fā)教程[M].北京:中國(guó)水利水電出版社,2010.

    Using crystal reports dynamic binding data source for complex dynamic crosstab method research

    Liu Hui1,Chang Wanlun1,Liu Yufan2
    (1.Xi′an University of Technology,Xi′an 710082,China;2.School of Mechanical Engineering,Northwestern Polytechnical University,Xi′an 710072,China)

    To reduce data redundancy,it is impossible to output a subtotaled report based on a database design which follows the strict design paradigm.To do it,transforming data to cross-table and rendering them via push model in crystal reports is needed.Based on.NET and SQL server environment,this paper explores and studies the technique about generating dynamic crosstable and the method about dynamic binding the data source to display data,as well as gives a more detailed implementation process.

    dynamic crosstab;crystal reports;Push mode;dynamic binding

    TP312

    A

    1674-7720(2015)10-0084-03

    2015-01-17)

    劉輝(1965-),女,碩士,副教授,主要研究方向:軟件算法、數(shù)據(jù)庫(kù)、數(shù)據(jù)挖掘。

    猜你喜歡
    數(shù)據(jù)源水晶報(bào)表
    一張水晶卡告訴你浪漫都在哪
    金卡生活(2021年7期)2021-07-07 05:14:40
    LabWindows/CVI中Excel報(bào)表技術(shù)研究
    邁向UHD HDR的“水晶” 十萬(wàn)元級(jí)別的SIM2 CRYSTAL4 UHD
    藍(lán)水晶般的大眼睛
    Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
    從三大報(bào)表讀懂養(yǎng)豬人的成績(jī)單
    基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
    尋找藍(lán)水晶
    基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
    分布式異構(gòu)數(shù)據(jù)源標(biāo)準(zhǔn)化查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)
    浪卡子县| 丰城市| 杭锦旗| 阳西县| 中牟县| 广南县| 广饶县| 绥中县| 保靖县| 湾仔区| 达尔| 宝丰县| 光泽县| 怀仁县| 武山县| 博乐市| 股票| 绥中县| 盐津县| 罗定市| 无锡市| 舞阳县| 灵丘县| 疏附县| 涿州市| 凌海市| 六枝特区| 宁强县| 抚松县| 慈利县| 如东县| 南部县| 六安市| 洪泽县| 翁牛特旗| 城固县| 牙克石市| 宣恩县| 通州区| 宿迁市| 芷江|