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

?

.NET環(huán)境下水晶報(bào)表的設(shè)計(jì)與實(shí)現(xiàn)

2013-12-10 14:07:14廣州市機(jī)電高級(jí)技工學(xué)校余楷鑫
電子世界 2013年4期
關(guān)鍵詞:程序員數(shù)據(jù)源水晶

廣州市機(jī)電高級(jí)技工學(xué)校 余楷鑫

廣州輕工職業(yè)學(xué)校 劉魁元

一、水晶報(bào)表的模式

水晶報(bào)表是開發(fā)數(shù)據(jù)報(bào)表的利器,在.NET平臺(tái)做過報(bào)表開發(fā)的程序員,一定都對(duì)水晶報(bào)表強(qiáng)大的報(bào)表設(shè)計(jì)功能留下深刻的印象。運(yùn)用水晶報(bào)表進(jìn)行開發(fā),能夠大大簡化數(shù)據(jù)報(bào)表開發(fā)的難度,減少開發(fā)的工作量,其良好的接口功能,使得程序員在開發(fā)與維護(hù)過程中,往往能夠取得事半功倍的效果。水晶報(bào)表在應(yīng)用時(shí)分兩種方法,分別是拉模式(PULL)、推模式(PUSH)。下面將介紹水晶報(bào)表的這兩種模式。

1.水晶報(bào)表的拉模式

水晶報(bào)表的拉模式是指直接從數(shù)據(jù)庫獲取數(shù)據(jù),利用水晶報(bào)表的接口來實(shí)現(xiàn)報(bào)表展示,基本上不用手動(dòng)編寫代碼。該種模式只需要調(diào)整模版就可以設(shè)計(jì)好水晶報(bào)表,與數(shù)據(jù)的連接和執(zhí)行SQL命令都是交水晶報(bào)表來完成,其表現(xiàn)如圖1所示。拉模式適用于不需要對(duì)數(shù)據(jù)庫(或數(shù)據(jù)文件)中的數(shù)據(jù)進(jìn)行額外的處理(如數(shù)值計(jì)算等)的情況,其優(yōu)點(diǎn)是設(shè)計(jì)時(shí)非常方便,可以隨時(shí)對(duì)設(shè)計(jì)的情況進(jìn)行預(yù)覽,但在應(yīng)用程序部署時(shí)則比較繁瑣(如需要設(shè)定數(shù)據(jù)庫連接的數(shù)據(jù)源及驅(qū)動(dòng))。

在拉模式下,只要按照?qǐng)?bào)表專家的向?qū)聿僮?,水晶?bào)表直接根據(jù)指定的驅(qū)動(dòng)連接數(shù)據(jù)庫然后組裝這些數(shù)據(jù),不需要開發(fā)人員編寫代碼。但是其缺點(diǎn)也是顯而易見的,用拉模式設(shè)計(jì)的水晶報(bào)表在運(yùn)行環(huán)境或者數(shù)據(jù)庫變動(dòng)時(shí),其調(diào)整比較麻煩。另外在設(shè)計(jì)與實(shí)現(xiàn)上,拉模式的靈活性不足也是存在的一個(gè)問題,作為程序員,該模式是不被喜歡的,所以本文并不推薦使用水晶報(bào)表的拉模式。

2.水晶報(bào)表的推模式

水晶報(bào)表的推模式也是需要獲取數(shù)據(jù)庫里的數(shù)據(jù)后在設(shè)計(jì)好的模板中展示出來,所不同的是推模式能夠靈活的按照程序員的設(shè)想實(shí)現(xiàn)復(fù)雜的水晶報(bào)表,而且在維護(hù)上更加的便利,一定程度上降低了與數(shù)據(jù)庫的耦合度。其表現(xiàn)形式如圖2所示。在推模式中編程組裝的Dataset里的SQL語句中的字段要與水晶報(bào)表里的SQL語句字段一致。

圖1

圖2

在水晶報(bào)表的推模式實(shí)現(xiàn)上,開發(fā)人員要編寫相應(yīng)的查詢代碼與報(bào)表中的字段相匹配,并且代碼中的數(shù)據(jù)庫表也要跟水晶報(bào)表中的保持一致,不然水晶報(bào)表便顯示不出數(shù)據(jù),筆者在這一點(diǎn)上曾經(jīng)吃過虧,調(diào)試了很久才發(fā)現(xiàn)這一疏漏。在簡單的水晶報(bào)表實(shí)現(xiàn)上,相信有過這方面開發(fā)的人都有一定了解,但是涉及到多數(shù)據(jù)表展示在同一張打印報(bào)表上時(shí),未必就有人知道了,本文接下來將介紹如何解決多報(bào)表打印這一問題。

二、如何利用水晶報(bào)表推模式實(shí)現(xiàn)多數(shù)據(jù)源綁定

通過以上分析,程序員在設(shè)計(jì)開發(fā)水晶報(bào)表的時(shí)候,以推模式來實(shí)現(xiàn)更加的符合實(shí)際項(xiàng)目的要求,筆者將通過一個(gè)學(xué)生學(xué)籍報(bào)表來介紹水晶報(bào)表推模式的實(shí)現(xiàn)步驟。

(1)實(shí)現(xiàn)的工具采用Visual Studio 2008,數(shù)據(jù)庫選擇SQL Server 2005,水晶報(bào)表則為Visual Studio 2008自帶的10.5版本。

(2)在項(xiàng)目底下新建一個(gè)StuReport.aspx的頁面,在該頁面中放置查詢條件,并在工具箱的報(bào)表欄中拖入CrystalReportViewer和CrystalReportSource控件到頁面中,前臺(tái)主要代碼如下:

如果是多個(gè)數(shù)據(jù)源的話,仿照上面將數(shù)據(jù)庫中的數(shù)據(jù)讀取到dataset中,這里需要注意的地方是Fill數(shù)據(jù)集的時(shí)候表名要和水晶報(bào)表中的保持一致。如果數(shù)據(jù)報(bào)表中需要顯示圖片的話,必須將圖片轉(zhuǎn)化為二進(jìn)制流的形式,因?yàn)関s 2008集成的水晶報(bào)表10.5只支持二進(jìn)制流的形式。

(3)在同一目錄下新建一個(gè)student.xsd的頁面,創(chuàng)建數(shù)據(jù)庫字段的映射,該頁面是利用xsd標(biāo)記語言建立的。實(shí)際上,xsd可以認(rèn)為是一個(gè)數(shù)據(jù)中介,介于報(bào)表模板與數(shù)據(jù)之間。建成數(shù)據(jù)集,有三個(gè)數(shù)據(jù)庫表,分別為STU_V_StuInfo、STU_V_Family、STU_T_ConductReview,這三個(gè)表的表名對(duì)應(yīng)上面提到的dataset填充名。

(4)接下來便是設(shè)計(jì)水晶報(bào)表頁面,首先便是綁定上面所示的數(shù)據(jù)源xsd文件,點(diǎn)擊字段資源管理器—數(shù)據(jù)庫字段,右鍵點(diǎn)擊數(shù)據(jù)庫專家。在數(shù)據(jù)庫文件中選擇我們創(chuàng)建的student.xsd文件。

設(shè)計(jì)數(shù)據(jù)報(bào)表:因?yàn)槭嵌鄶?shù)據(jù)源展示到同一數(shù)據(jù)報(bào)表中,所以需要插入子報(bào)表。學(xué)生信息模塊為主報(bào)表,家庭成員模塊和操行評(píng)定模塊為子報(bào)表。

點(diǎn)擊主報(bào)表,右鍵—插入--子報(bào)表,選擇鏈接標(biāo)簽,這里需要注意的地方是:主報(bào)表與子報(bào)表必須通過學(xué)生ID進(jìn)行關(guān)聯(lián),這樣才能使報(bào)表讀到的學(xué)生信息是同一個(gè)學(xué)生ID的信息。子報(bào)表中的字段設(shè)置方法與主報(bào)表一樣。

設(shè)計(jì)完報(bào)表,我們就可以運(yùn)行我們所設(shè)計(jì)的報(bào)表界面。

三、結(jié)束語

學(xué)校學(xué)生學(xué)籍打印是學(xué)校學(xué)生管理系統(tǒng)的一項(xiàng)重要功能,運(yùn)用水晶報(bào)表來進(jìn)行學(xué)籍打印,能夠大大減少學(xué)籍管理員的工作量。本文利用水晶報(bào)表來解決這一問題,希望能給大家提供借鑒與參考。

[1]滕永富,孫振龍,田麗軍,薛仁政.基于Web的研究生管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].齊齊哈爾大學(xué)學(xué)報(bào)(自然科學(xué)版),2010(03).

[2]李濤,屈展.基于.NET的Web動(dòng)態(tài)報(bào)表研究與實(shí)現(xiàn)[J].科技資訊,2008(03).

[3]雷筱珍.水晶報(bào)表數(shù)據(jù)來源之.NET對(duì)象應(yīng)用技巧[J].福建電腦,2010(11).

[4]張龍強(qiáng).一種.NET下報(bào)表打印的方法與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2010(19).

[5]石俊萍.基于C#水晶報(bào)表數(shù)據(jù)源動(dòng)態(tài)綁定的實(shí)現(xiàn)[J].電腦與電信,2009(05).

[6]洪穎.基于.net平臺(tái)下不同模式水晶報(bào)表的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與信息技術(shù),2009(12).

[7]莫麗萍.基于.NETB/S模式中水晶報(bào)表打印與套打的實(shí)現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2008(11).

猜你喜歡
程序員數(shù)據(jù)源水晶
為了讓媽媽看懂地圖,一位“野生程序員”做了個(gè)小程序
一張水晶卡告訴你浪漫都在哪
金卡生活(2021年7期)2021-07-07 05:14:40
怎樣成為一名優(yōu)秀程序員
幼兒100(2020年29期)2020-10-21 06:17:58
邁向UHD HDR的“水晶” 十萬元級(jí)別的SIM2 CRYSTAL4 UHD
藍(lán)水晶般的大眼睛
潤·文摘(2018年7期)2018-05-14 16:52:40
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
程序員之子
意林(2017年24期)2018-01-02 22:49:14
基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
尋找藍(lán)水晶
快樂語文(2016年15期)2016-11-07 09:46:35
加班
三月三(2016年6期)2016-06-21 10:25:33
江源县| 通海县| 台北县| 洪江市| 龙陵县| 灵山县| 全椒县| 定兴县| 阜康市| 九龙坡区| 壤塘县| 鞍山市| 越西县| 天镇县| 赣州市| 关岭| 光泽县| 威远县| 开鲁县| 长汀县| 闽清县| 汤阴县| 旺苍县| 贵德县| 松桃| 白沙| 大同市| 正蓝旗| 瓦房店市| 新田县| 会昌县| 乌恰县| 汕尾市| 北安市| 新野县| 桃园县| 夏津县| 宜兰县| 大安市| 二连浩特市| 紫云|