★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識(shí)重要,素質(zhì)比智力重要,覺悟比素質(zhì)更重要
          posts - 110,comments - 35,trackbacks - 0
          水晶報(bào)表是一個(gè)優(yōu)秀的報(bào)表開發(fā)工具,本人在開發(fā)通用管理系統(tǒng)的時(shí)候,所有報(bào)表都使用水晶報(bào)表,其簡(jiǎn)單、易用和強(qiáng)大的功能令筆者倍加喜愛,現(xiàn)將水晶報(bào)表使用手記呈現(xiàn)給大家。?

            一、在使用自帶的水晶報(bào)表時(shí),請(qǐng)注冊(cè),否則只能使用30次

            水晶報(bào)表注冊(cè)碼
            注冊(cè)號(hào):6707437608
            密碼:AAP5GKS0000GDE100DS?

            二、使用CrystalReportViewer進(jìn)行預(yù)覽
            CrystalReportViewer控件允許在應(yīng)用程序中查看?Crystal?Report。ReportSource?屬性用于設(shè)置要查看哪個(gè)報(bào)表。該屬性設(shè)置之后,報(bào)表顯示在查看器中。報(bào)表源可以是ReportDocument、報(bào)表文件的路徑,也可以是強(qiáng)類型報(bào)表。

            1.?打開“工具箱”,并將一個(gè)?CrystalReportViewer?拖到窗體上,我們命名為rptVew。?

            2.?通過拖放操作將?Windows?窗體查看器調(diào)整到希望的大小并將其移動(dòng)到所需位置。?

            3.?當(dāng)運(yùn)行應(yīng)用程序時(shí),報(bào)表將顯示在查看器中。

            三、創(chuàng)建新報(bào)表

            1.?指向“添加”,單擊“添加新項(xiàng)”。?

            2.?在“添加新項(xiàng)”對(duì)話框中,從“模板”區(qū)域選擇?Crystal?Report,將報(bào)表命名為rptClient,單擊“打開”。?

            3.?在?Crystal?Report?庫中,選擇下列選項(xiàng)之一:?

             ·?使用報(bào)表專家?—?指導(dǎo)您完成報(bào)表的創(chuàng)建過程,并將您的選擇添加到?Crystal?Report?Designer。?

             ·?作為空白報(bào)表?—?打開?Crystal?Report?Designer。?

             ·?來自于現(xiàn)有的報(bào)表?—?創(chuàng)建新報(bào)表,它與指定的另一報(bào)表設(shè)計(jì)相同。?

            注意?Crystal?Report?庫包含許多專家,可以指導(dǎo)您完成數(shù)個(gè)特定類型報(bào)表的創(chuàng)建工作。您可能希望使用專家來創(chuàng)建最初的報(bào)表,以確定哪種報(bào)表構(gòu)造方法適合您的需要。

            4.?單擊“確定”按鈕。?

            如果選擇使用“報(bào)表專家”,便會(huì)出現(xiàn)“報(bào)表專家”對(duì)話框,并帶有數(shù)據(jù)資源管理器。為每個(gè)文件夾選擇所需數(shù)據(jù),完成“報(bào)表專家”選項(xiàng)卡界面上的操作,然后單擊“完成”來訪問?Crystal?Report?Designer?和您的報(bào)表

            四、是否需要?jiǎng)討B(tài)設(shè)置數(shù)據(jù)源?

            Crystal?Reports?通過數(shù)據(jù)庫驅(qū)動(dòng)程序與數(shù)據(jù)庫連接。每個(gè)驅(qū)動(dòng)程序都被編寫為可處理特定數(shù)據(jù)庫類型或數(shù)據(jù)庫訪問技術(shù)。?

            拉和推模型

            為了向開發(fā)人員提供最靈活的數(shù)據(jù)訪問方法,Crystal?Reports?數(shù)據(jù)庫驅(qū)動(dòng)程序被設(shè)計(jì)為可同時(shí)提供數(shù)據(jù)訪問的拉模型和推模型。?

            拉模型

            在拉模型中,驅(qū)動(dòng)程序?qū)⑦B接到數(shù)據(jù)庫并根據(jù)需要將數(shù)據(jù)“拉”進(jìn)來。使用這種模型時(shí),與數(shù)據(jù)庫的連接和為了獲取數(shù)據(jù)而執(zhí)行的?SQL?命令都同時(shí)由?Crystal?Reports?本身處理,不需要開發(fā)人員編寫代碼。如果在運(yùn)行時(shí)無須編寫任何特殊代碼,則使用拉模型。

            推模型

            相反,推模型需要開發(fā)人員編寫代碼以連接到數(shù)據(jù)庫,執(zhí)行?SQL?命令以創(chuàng)建與報(bào)表中的字段匹配的記錄集或數(shù)據(jù)集,并且將該對(duì)象傳遞給報(bào)表。該方法使您可以將連接共享置入應(yīng)用程序中,并在?Crystal?Reports?收到數(shù)據(jù)之前先將數(shù)據(jù)篩選出來。?
            四、從?ADO.NET?數(shù)據(jù)集制作報(bào)表

            從數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)集對(duì)象?

            1.?在項(xiàng)目中新建一個(gè)架構(gòu)文件:?

             a.?在解決方案資源管理器中,右擊項(xiàng)目名,指向“添加”,然后單擊“添加新項(xiàng)”。?

             b.?在“添加新項(xiàng)”對(duì)話框的“類別”區(qū)域,展開文件夾,然后選擇“數(shù)據(jù)”。?

             c.?在“模板”區(qū)域選擇“數(shù)據(jù)集”。?

             d.?接受默認(rèn)名稱?Dataset1.xsd。?

            這就創(chuàng)建了一個(gè)新的架構(gòu)文件?(Dataset1.xsd),以后將用它來生成強(qiáng)類型數(shù)據(jù)集。該架構(gòu)文件將顯示在?ADO.NET?數(shù)據(jù)集設(shè)計(jì)器中。?

            2.?指定數(shù)據(jù)庫位置:?

             a.?在服務(wù)器資源管理器中,右擊“數(shù)據(jù)連接”并選擇“添加連接”。?

             b.?在“數(shù)據(jù)鏈接屬性”對(duì)話框中,單擊“提供程序”選項(xiàng)卡,然后選擇一個(gè)提供程序(例如?Microsoft?OLE?DB?Provider?for?SQL?Server)。?

             c.?單擊“連接”選項(xiàng)卡,然后指定您的數(shù)據(jù)庫所在位置。在所需位置輸入服務(wù)器和登錄信息。?

             d.?單擊“確定”按鈕。?

             此時(shí),您的數(shù)據(jù)庫及其表和字段就出現(xiàn)在服務(wù)器資源管理器的“數(shù)據(jù)連接”節(jié)點(diǎn)下面。?

            3.?在解決方案資源管理器中,雙擊?Dataset1.xsd?(如果它尚不是活動(dòng)視圖)。?

             Dataset1.xsd?現(xiàn)在應(yīng)顯示在“數(shù)據(jù)集”選項(xiàng)卡中。?

            4.?若要為數(shù)據(jù)集建立架構(gòu),請(qǐng)將需要的表從服務(wù)器資源管理器中拖動(dòng)到?Dataset1.xsd?的“數(shù)據(jù)集”選項(xiàng)卡上。?

            5.?單擊“保存?Dataset1.xsd”來保存“Dataset1.xsd”文件。?

            6.?在“生成”菜單上,單擊“生成”為項(xiàng)目生成數(shù)據(jù)集對(duì)象。?

            ADO.NET?數(shù)據(jù)集對(duì)象提供數(shù)據(jù)的描述,從它可以向?Crystal?report?添加表。使用?Crystal?Report?Designer?中的“數(shù)據(jù)庫專家”從?ADO.NET?數(shù)據(jù)集對(duì)象添加表。?

            請(qǐng)?jiān)谑褂谩皥?bào)表專家”創(chuàng)建新報(bào)表時(shí)調(diào)用“數(shù)據(jù)庫專家”。或者,要從一個(gè)已經(jīng)使用?ADO.NET?建立好的報(bào)表中訪問“數(shù)據(jù)庫專家”,請(qǐng)?jiān)?Report?Designer?中右擊,指向“數(shù)據(jù)庫”,然后單擊“添加/刪除數(shù)據(jù)庫”。

            將報(bào)表連接到?ADO.NET?數(shù)據(jù)集對(duì)象?

            1.?在“數(shù)據(jù)庫專家”中,展開“項(xiàng)目數(shù)據(jù)”文件夾。?

            2.?展開“ADO.NET?數(shù)據(jù)集”文件夾。?

            3.?選擇所需數(shù)據(jù)集對(duì)象。?

            例如,如果當(dāng)時(shí)使用的是從項(xiàng)目“WindowsApplication1”的架構(gòu)文件“Dataset1.xsd”中生成的數(shù)據(jù)集對(duì)象,則應(yīng)該選擇“WindowsApplication1.Dataset1”。?

            4.?選擇要向報(bào)表中添加的表,和使用其他數(shù)據(jù)源一樣。?

            五、動(dòng)態(tài)改變數(shù)據(jù)源的代碼?

          Dim?dsdataSet?As?New?DataSet()

          Dim?oRpt?As?New?rptClient()?'已建立的報(bào)表rptClient

            請(qǐng)讀者自行填充數(shù)據(jù)集dsdataSet?


          '使用“報(bào)表引擎”對(duì)象模型將填充的數(shù)據(jù)集,傳遞給報(bào)表

          oRpt.SetDataSource(dsdataSet.Tables(0))

          '?將帶有數(shù)據(jù)的報(bào)表對(duì)象綁定到?Windows?窗體查看器,rptVew(CrystalReportViewer控件)

          rptVew.ReportSource?=?oRpt

            注意?FillDataSet?方法可連接到指定的數(shù)據(jù)庫,提取數(shù)據(jù),然后斷開數(shù)據(jù)庫連接。如果您希望將數(shù)據(jù)庫中的多個(gè)表添加到報(bào)表中,請(qǐng)使用?SQL?JOIN?語句將這些表聯(lián)接在一起;然后在?FillDataSet?方法中指定一個(gè)結(jié)果表

            六、創(chuàng)建主從報(bào)表

            在報(bào)表中,有許多報(bào)表是主從表結(jié)構(gòu),比如訂單與訂單商品明細(xì),訂單是一個(gè)表中的一條記錄,而分錄是另一個(gè)表中的多條記錄,兩個(gè)表通過一個(gè)字段關(guān)聯(lián)起來,這種報(bào)表可利用其分組功能實(shí)現(xiàn),

            1.?新建一個(gè)工程

            2.?往FORM1中添加一個(gè)CrystalReportViewer控件

            3.?在服務(wù)噐資源管理器中連接到SQL?SERVER?2000上的Northwind數(shù)據(jù)庫

            4.?添加一個(gè)數(shù)據(jù)集Dataset1,將服務(wù)器資源管理器中的Orders和?Order?Details加入到數(shù)據(jù)集中。

            5.?添加一個(gè)水晶報(bào)表,使用報(bào)表專家,在項(xiàng)目數(shù)據(jù)中選擇“ADO.NET數(shù)據(jù)集”,插入表Orders和?Order?Details,“鏈接”中是關(guān)聯(lián)字段的鏈接,在“字段”中選擇要顯示的主表和明細(xì)表的字段,組中選擇分組依據(jù)為Orders表OrdersID字段,總計(jì),圖表,選擇(可進(jìn)行篩選),樣式(可設(shè)置報(bào)表標(biāo)題),可自行設(shè)置。設(shè)置完后,點(diǎn)擊完成。

            6.?在報(bào)表設(shè)計(jì)器中調(diào)整需要顯示的字段的位置、寬度等。

            7.?在窗口中添加代碼。

          Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load

          Dim?oRpt?As?New?CrystalReport1()

          Dim?dsdataSet?As?New?Dataset1()?

          Dim?CN?As?New?Data.SqlClient.SqlConnection("data?source=PMSERVER;initial?catalog=Northwind;user?id=sa;password=sa")

          CN.Open()

          Dim?daOrders?As?New?Data.SqlClient.SqlDataAdapter("select?*?from?orders",?CN)

          daOrders.Fill(dsdataSet,?"orders")?

          Dim?daDetails?As?New?Data.SqlClient.SqlDataAdapter("select?*?from?[Order?Details]",?CN)

          daDetails.Fill(dsdataSet,?"Order?Details")?

          '使用“報(bào)表引擎”對(duì)象模型將填充的數(shù)據(jù)集,傳遞給報(bào)表

          oRpt.SetDataSource(dsdataSet)

          CrystalReportViewer1.ReportSource?=?oRpt

          End?Sub

            8、運(yùn)行程序

            七、用程序改變報(bào)表中text的文本

            代碼如下:

          Dim?GetTextObject?As?TextObject

          '?按名稱獲取?ReportObject,將其轉(zhuǎn)換為?TextObject,并返回此對(duì)象。

          GetTextObject?=?orpt.ReportDefinition.ReportObjects.Item("text13")

          GetTextObject.Text?=?"XXXX系統(tǒng)"

            總結(jié):水晶報(bào)表具有非常強(qiáng)大的功能,還可進(jìn)行導(dǎo)出WORD、EXCEL、RTF等文件,還可生成復(fù)雜、漂亮圖表,是進(jìn)行WEB和WINDOWS報(bào)表開發(fā)的利器。?
          posted on 2007-01-04 16:29 圣域飛俠 閱讀(2101) 評(píng)論(2)  編輯  收藏 所屬分類: 轉(zhuǎn)載

          FeedBack:
          # re: .NET環(huán)境下水晶報(bào)表使用總結(jié)(VB.NET)
          2010-12-28 16:48 | chansing
          如何注冊(cè)  回復(fù)  更多評(píng)論
            
          # re: .NET環(huán)境下水晶報(bào)表使用總結(jié)(VB.NET)
          2010-12-29 11:27 | kuaige
          水晶報(bào)表如何注冊(cè)  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 班戈县| 南汇区| 叙永县| 噶尔县| 霍山县| 鄄城县| 江陵县| 梓潼县| 舞钢市| 五大连池市| 肥乡县| 赞皇县| 阿瓦提县| 庄河市| 西吉县| 盐边县| 丽江市| 保康县| 涿州市| 普安县| 同江市| 定安县| 虹口区| 昌邑市| 成安县| 双鸭山市| 来宾市| 赤峰市| 靖安县| 安仁县| 五河县| 那曲县| 萝北县| 五大连池市| 东源县| 通江县| 吉安市| 慈溪市| 黔南| 西盟| 凤山县|