winform水晶報表基礎操作從入門到精通_第1頁
winform水晶報表基礎操作從入門到精通_第2頁
winform水晶報表基礎操作從入門到精通_第3頁
winform水晶報表基礎操作從入門到精通_第4頁
winform水晶報表基礎操作從入門到精通_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、水晶報表基礎操作從入門到精通1、水晶報表注冊碼在使用V自帶的水晶報表時,請注冊,否則只能使用30次,水晶報表注冊碼如下:注冊號:6707437608密碼:AAP5GKS0000GDE100DS2、Asp.Net中使用水晶報表我們采用下面的幾步使用Push模式執(zhí)行水晶報表:1設計一個DataSet右擊“解決方案瀏覽器”,選擇“添加”-“添加新項”->“數(shù)據(jù)集”,從“服務器資源管理器”中的“SQL Server”中拖放“Stores”表(位于PUBS數(shù)據(jù)庫中)。再將此表拖入數(shù)據(jù)集中。而 .xsd文件中僅僅包含一個結(jié)構圖,但是不會有任何數(shù)據(jù)在里面。2創(chuàng)建一個.rpt文件同時將其指定給上一步建立

2、的DataSet。使用上面的介紹過的方法創(chuàng)建此文件,唯一的不同就是使用數(shù)據(jù)集來代替前面的直接連接數(shù)據(jù)。建立.rpt文件之后,右擊“詳細資料”->“添加刪除數(shù)據(jù)庫”,在”數(shù)據(jù)庫專家“窗口中,展開”項目數(shù)據(jù)“(代替以前的OleDb),展開“ADO.Net數(shù)據(jù)集”-“DataSet1”,選擇“Stores”表。將“Stores”表添加到“選定的表”中,點擊“OK”。3在aspx頁面中拖放一個CrystalReportViewer控件同時將其與前面的rpt文件建立聯(lián)系。使用PULL模式下的方法,建立一個WebForm,添加一個Crystal Report Viewer 控件,并設定其屬性,此處與

3、PULL模式下是一致的。代碼如下:private void Page_Load(object sender, System.EventArgs e DataSet1 ds = new DataSet1(; oCR = new MyReport(; SqlConnection MyConn = new SqlConnection(ConfigurationSettings.AppSettings"SqlConn" MyConn.Open(;/直接訪問數(shù)據(jù)表 /string strSel = "select * from tbtree" /SqlDataAd

4、apter MyAdapter = new SqlDataAdapter(strSel,MyConn; /MyAdapter.Fill(ds,"tbtree"/使用存儲過程 SqlCommand cmd = new SqlCommand("display", MyConn; cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter MyAdapter = new SqlDataAdapter(cmd; MyAdapter.Fill(ds,"tbtree"oCR.SetD

5、ataSource(ds; 注意:在上面的代碼中,你得注意一下oRpt是"Strongly Typed"的報表文件。如果你需要使用"UnTyped"報表,你得使用ReportDocument對象,然后再調(diào)用報表文件。4在代碼中訪問數(shù)據(jù)庫并把數(shù)據(jù)存入DataSet5將報表文件導出成為其它格式你能夠?qū)蟊砦募С龀蔀橄铝懈袷剑?1 PDF (Portable Document Format (2 DOC (MS Word Document (3 XLS (MS Excel Spreadsheet (4 HTML (Hyper Text Markup Lang

6、uage 3.2 or 4.0 compliant (5 RTF (Rich Text Format 使用Pull模式導出報表,當導出使用Pull模式創(chuàng)建的文件時,水晶報表準確地打開所需要的數(shù)據(jù),首先在HTML中加入一個 元素和控件 IE 打印預覽 格式轉(zhuǎn)換 Pdf Word 下面是執(zhí)行導出功能的代碼:private void lbtn_IEPrint_Click(object sender, System.EventArgs e if(lbtn_IEPrint.Text = "IE打印預覽" CrystalReportViewer1.SeparatePages

7、= false; CrystalReportViewer1.DisplayToolbar = false; lbtn_IEPrint.Text = "取消IE打印預覽" else CrystalReportViewer1.SeparatePages = true; CrystalReportViewer1.DisplayToolbar = true; lbtn_IEPrint.Text = "IE打印預覽" private void btn_Change_Click(object sender, System.EventArgs e string fil

8、etype = "" filetype = ddl_FileFormat.SelectedValue; string contenttype = "" string myfilename = Request.MapPath("." Session.SessionID "." filetype; mydiskoptions.DiskFileName = myfilename; myExportOptions.DestinationOptions = mydiskoptions; case "pdf"

9、;: contenttype = "application/pdf" break; case "doc": contenttype = "application/msword" break; oCR.Export(;Response.ClearContent(; Response.ClearHeaders(; Response.ContentType = contenttype; Response.WriteFile(myfilename; Response.Flush(; Response.Close(;2、C#.Net的WinFo

10、rm中使用水晶報表1在使用自帶的水晶報表時,請注冊,否則只能使用30次2使用CrystalReportViewer進行預覽CrystalReportViewer控件允許在應用程序中查看 Crystal Report。ReportSource 屬性用于設置要查看哪個報表。該屬性設置之后,報表顯示在查看器中。報表源可以是ReportDocument、報表文件的路徑,也可以是強類型報表。(1打開“工具箱”,并將一個 CrystalReportViewer 拖到窗體上,我們命名為rptVew。 (2通過拖放操作將 Windows 窗體查看器調(diào)整到希望的大小并將其移動到所需位置。 (3當運行應用程序時,

11、報表將顯示在查看器中。3創(chuàng)建新報表(1指向“添加”,單擊“添加新項”。 (2在“添加新項”對話框中,從“模板”區(qū)域選擇 Crystal Report,將報表命名為rptClient,單擊“打開”。 (3在 Crystal Report 庫中,選擇下列選項之一: A.使用報表專家 -> 指導您完成報表的創(chuàng)建過程,并將您的選擇添加到 Crystal Report Designer。 B.作為空白報表 -> 打開 Crystal Report Designer。 C.來自于現(xiàn)有的報表 -> 創(chuàng)建新報表,它與指定的另一報表設計相同。 注意 Crystal Report 庫包含許多專家

12、,可以指導您完成數(shù)個特定類型報表的創(chuàng)建工作。您可能希望使用專家來創(chuàng)建最初的報表,以確定哪種報表構造方法適合您的需要。(4單擊“確定”按鈕。 如果選擇使用“報表專家”,便會出現(xiàn)“報表專家”對話框,并帶有數(shù)據(jù)資源管理器。為每個文件夾選擇所需數(shù)據(jù),完成“報表專家”選項卡界面上的操作,然后單擊“完成”來訪問 Crystal Report Designer 和您的報表。(5是否需要動態(tài)設置數(shù)據(jù)源?Crystal Reports 通過數(shù)據(jù)庫驅(qū)動程序與數(shù)據(jù)庫連接。每個驅(qū)動程序都被編寫為可處理特定數(shù)據(jù)庫類型或數(shù)據(jù)庫訪問技術。拉和推模型,為了向開發(fā)人員提供最靈活的數(shù)據(jù)訪問方法,Crystal Reports 數(shù)

13、據(jù)庫驅(qū)動程序被設計為可同時提供數(shù)據(jù)訪問的拉模型和推模型。 拉模型pull:在拉模型中,驅(qū)動程序?qū)⑦B接到數(shù)據(jù)庫并根據(jù)需要將數(shù)據(jù)“拉”進來。使用這種模型時,與數(shù)據(jù)庫的連接和為了獲取數(shù)據(jù)而執(zhí)行的 SQL 命令都同時由 Crystal Reports 本身處理,不需要開發(fā)人員編寫代碼。如果在運行時無須編寫任何特殊代碼,則使用拉模型。推模型push:相反,推模型需要開發(fā)人員編寫代碼以連接到數(shù)據(jù)庫,執(zhí)行 SQL 命令以創(chuàng)建與報表中的字段匹配的記錄集或數(shù)據(jù)集,并且將該對象傳遞給報表。該方法使您可以將連接共享置入應用程序中,并在 Crystal Reports 收到數(shù)據(jù)之前先將數(shù)據(jù)篩選出來。 4從 ADO.N

14、ET 數(shù)據(jù)集制作報表從數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)集對象(1在項目中新建一個架構文件: 在解決方案資源管理器中,右擊項目名,指向“添加”,然后單擊“添加新項”。在“添加新項”對話框的“類別”區(qū)域,展開文件夾,然后選擇“數(shù)據(jù)”。 在“模板”區(qū)域選擇“數(shù)據(jù)集”。 接受默認名稱 Dataset1.xsd。 這就創(chuàng)建了一個新的架構文件 (Dataset1.xsd,以后將用它來生成強類型數(shù)據(jù)集。該架構文件將顯示在 ADO.NET 數(shù)據(jù)集設計器中。 (2指定數(shù)據(jù)庫位置: 在服務器資源管理器中,右擊“數(shù)據(jù)連接”并選擇“添加連接”。在“數(shù)據(jù)鏈接屬性”對話框中,單擊“提供程序”選項卡,然后選擇一個提供程序(例如 Micros

15、oft OLE DB Provider for SQL Server)。 單擊“連接”選項卡,然后指定您的數(shù)據(jù)庫所在位置。在所需位置輸入服務器和登錄信息。 單擊“確定”按鈕。 此時,您的數(shù)據(jù)庫及其表和字段就出現(xiàn)在服務器資源管理器的“數(shù)據(jù)連接”節(jié)點下面。 (3在解決方案資源管理器中,雙擊 Dataset1.xsd (如果它尚不是活動視圖)。 Dataset1.xsd 現(xiàn)在應顯示在“數(shù)據(jù)集”選項卡中。 (4若要為數(shù)據(jù)集建立架構,請將需要的表從服務器資源管理器中拖動到 Dataset1.xsd 的“數(shù)據(jù)集”選項卡上。 (5單擊“保存 Dataset1.xsd”來保存“Dataset1.xsd”文件。

16、 (6在“生成”菜單上,單擊“生成”為項目生成數(shù)據(jù)集對象。 ADO.NET 數(shù)據(jù)集對象提供數(shù)據(jù)的描述,從它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“數(shù)據(jù)庫專家”從 ADO.NET 數(shù)據(jù)集對象添加表。 請在使用“報表專家”創(chuàng)建新報表時調(diào)用“數(shù)據(jù)庫專家”?;蛘撸獜囊粋€已經(jīng)使用 ADO.NET 建立好的報表中訪問“數(shù)據(jù)庫專家”,請在 Report Designer 中右擊,指向“數(shù)據(jù)庫”,然后單擊“添加/刪除數(shù)據(jù)庫”。將報表連接到 ADO.NET 數(shù)據(jù)集對象 (1在“數(shù)據(jù)庫專家”中,展開“項目數(shù)據(jù)”文件夾。 (2展開“ADO.NET

17、數(shù)據(jù)集”文件夾。 (3選擇所需數(shù)據(jù)集對象。 例如,如果當時使用的是從項目“WindowsApplication1”的架構文件“Dataset1.xsd”中生成的數(shù)據(jù)集對象,則應該選擇“WindowsApplication1.Dataset1”。 選擇要向報表中添加的表,和使用其他數(shù)據(jù)源一樣。5動態(tài)改變數(shù)據(jù)源的代碼DataSet dsdataSet = new DataSet(; rptClient( oRpt = new rptClient(; /已建立的報表rptClient OleDbDataAdapter da=new OleDbDataAdapter("select * fr

18、om TableName",conn; da.Fill(dsdataSet,"TableName" /使用“報表引擎”對象模型將填充的數(shù)據(jù)集,傳遞給報表 oRpt.SetDataSource(dsdataSet.Tables(0; /將帶有數(shù)據(jù)的報表對象綁定到 Windows 窗體查看器,rptVew(CrystalReportViewer控件) rptVew.ReportSource = oRpt; 注意 FillDataSet 方法可連接到指定的數(shù)據(jù)庫,提取數(shù)據(jù),然后斷開數(shù)據(jù)庫連接。如果您希望將數(shù)據(jù)庫中的多個表添加到報表中,請使用 SQL JOIN 語句將這些

19、表聯(lián)接在一起;然后在 FillDataSet 方法中指定一個結(jié)果表。6創(chuàng)建主從報表在報表中,有許多報表是主從表結(jié)構,比如訂單與訂單商品明細,訂單是一個表中的一條記錄,而分錄是另一個表中的多條記錄,兩個表通過一個字段關聯(lián)起來,這種報表可利用其分組功能實現(xiàn)。(1新建一個工程(2往FORM1中添加一個CrystalReportViewer控件(3在服務噐資源管理器中連接到SQL SERVER 2000上的Northwind數(shù)據(jù)庫(4添加一個數(shù)據(jù)集Dataset1,將服務器資源管理器中的Orders和 Order Details加入到數(shù)據(jù)集中。(5添加一個水晶報表,使用報表專家,在項目數(shù)據(jù)中選擇“AD

20、O.NET數(shù)據(jù)集”,插入表Orders和 Order Details,“鏈接”中是關聯(lián)字段的鏈接,在“字段”中選擇要顯示的主表和明細表的字段,組中選擇分組依據(jù)為Orders表OrdersID字段,總計,圖表,選擇(可進行篩選),樣式(可設置報表標題),可自行設置。設置完后,點擊完成。(6在報表設計器中調(diào)整需要顯示的字段的位置、寬度等。(7在窗口中添加代碼。public PrintForm( InitializeComponent(;OleDbConnection conn=new OleDbConnection("data source=PMSERVER;initial catalo

21、g=Northwind;user id=sa;password=sa" Dataset1( ds = new Dataset1(;OleDbDataAdapter da1=new OleDbDataAdapter("select * from orders",conn; da1.Fill(ds,"orders"OleDbDataAdapter da2=new OleDbDataAdapter("select * from Order Details",conn; da2.Fill(ds,"Order Details

22、"CrystalReport1 oCR=new CrystalReport1(; oCR.SetDataSource(ds; (8運行程序3、水晶報表登陸失敗using CrystalDecisions.Shared; /聲明所需變量。 TableLogOnInfo logOnInfo = new TableLogOnInfo(; /對報表中的每個表依次循環(huán)。 /設置當前表的連接信息。 注意 受密碼保護的 Microsoft Access 和 Paradox 等 PC 數(shù)據(jù)庫也使用該方法,但 LogOnInfo.ServerName為數(shù)據(jù)文件的路徑, LogOnInfo.Databa

23、seName 要保留為空。TableLogOnInfo 是屬于CrystalDecisions.Shared 命名空間的成員。要添加引用:using CrystalDecisions.Shared;。4、水晶報表應用程序的發(fā)布1安裝部署安裝部署時,把水晶報表的msm打進去,注冊到服務器,要部署使用 Crystal Reports for Visual Studio .NET 2003 的程序,首先,找到以下7個文件(你可以 'C:Program FilesCommon FilesMerge Modules' 文件夾下找到:Crystal_Database_Access2003.

24、msm Crystal_Database_Access2003_chs.msm Crystal_Managed2003.msm Crystal_Managed2003_chs.msm Crystal_regwiz2003.msm VC_User_CRT71_RTL_X86_-.msm VC_User_STL71_RTL_X86_-.msm接著,在解決方案資源管理器中,右擊安裝項目,指向“添加”,然后單擊“合并模塊”。在“添加模塊”對話框中,選擇上面的7個要添加到安裝項目的合并模塊,然后單擊“打開”。還有,打開解決方案->右鍵點擊 Crystal_regwiz2003.msm 的屬性,在“

25、MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(這個是你生成Crystal Report是用到的注冊號的密碼!)2部署水晶報表時的常見問題及解決方案(1載入報表時報錯問題出在報表發(fā)布上。發(fā)布使用水晶報表的項目需要包含三種組件:報表(*.rpt)、模塊(*.msm)、運行庫(*.msm),這些模塊文件是在 C:Program FilesCommon FilesMerge Modules 目錄里面。A.報表(*.rpt):用戶編程時創(chuàng)建的水晶報表文件。B.模塊(*.msm):Managed_chs.msm 是該模塊的中文版語

26、言支持。Database_Access.msm 該模塊包含了數(shù)據(jù)庫的驅(qū)動、與不同數(shù)據(jù)庫的聯(lián)結(jié)、報表導出為 RTF 和 HTML 格式的文檔和圖表組件。 Database_Access_chs.msm 是此模塊的中文版語言支持。Regwiz.msm 注冊信息模塊,非常重要,必需在這個模塊輸入水晶報表的注冊序列號,如果不填,編譯的時候就無法通過C:運行庫(*.msm):如果報表文件使用了 ADO.NET 的 dataset 數(shù)據(jù)集對象,那么 VC_CRT.msm 和 VC_STL.msm 模塊也必須包含在安裝工程中。而且這兩個模塊的文件安裝屬性的Module Retargetable Folder

27、項必須修改成為系統(tǒng)目錄。在VS.NET安裝工程中,系統(tǒng)檢測出來的依賴項只有 dotNETFXRedist_x86_chs.msm 和 Managed.msm這兩個模塊,其他的模塊我們需要手動加入。(2部署到 Windows 98 / ME 時,出錯:Load Report Failed 這是因為查詢引擎 DLL(CRQE.dll在客戶計算機上沒有正確注冊。要解決這個問題,可以在客戶計算機上手動注冊 CRQE.dll,使用下面的命令:regsvr32 C:program filescommon filesCrystal Decisions1.0binCRQE.dllA.在客戶計算機上裝 IE6.0。B.在客戶計算機上,手動復制和注冊 ATL.dll,然后運行用于 Crystal Reports 分發(fā)的安裝包。(3在Win98的客戶端運行提示該字段名未知報表在Win2000的客戶端一切正常,在Win98的客戶端運行提示該字段名未知?是因為報表使用到的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論