版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C#水晶報(bào)表的使用在使用自帶的水晶報(bào)表時(shí),請注冊,否則只能使用30次使用CrystalReportViewer進(jìn)行預(yù)覽CrystalReportViewer控件允許在應(yīng)用程序中查看CrystalReport。ReportSource屬性用于設(shè)置要查看哪個(gè)報(bào)表。該屬性設(shè)置之后,報(bào)表顯示在查看器中。報(bào)表源可以是ReportDocument、報(bào)表文件的路徑,也可以是強(qiáng)類型報(bào)表。打開''工具箱〃,并將一個(gè)CrystalReportViewer拖到窗體上,我們命名為rptVew。通過拖放操作將Windows窗體查看器調(diào)整到希望的大小并將其移動到所需位置。當(dāng)運(yùn)行應(yīng)用程序時(shí),報(bào)表將顯示在查看器中。創(chuàng)建新報(bào)表指向''添加〃,單擊''添加新項(xiàng)〃。⑵在''添加新項(xiàng)〃對話框中,從''模板〃區(qū)域選擇CrystalReport,將報(bào)表命名為rptClient,單擊''打開〃。⑶在CrystalReport庫中,選擇下列選項(xiàng)之一:使用報(bào)表專家->指導(dǎo)您完成報(bào)表的創(chuàng)建過程,并將您的選擇添加到CrystalReportDesigner。作為空白報(bào)表->打開CrystalReportDesigner。。.來自于現(xiàn)有的報(bào)表->創(chuàng)建新報(bào)表,它與指定的另一報(bào)表設(shè)計(jì)相同。注意CrystalReport庫包含許多專家,可以指導(dǎo)您完成數(shù)個(gè)特定類型報(bào)表的創(chuàng)建工作。您可能希望使用專家來創(chuàng)建最初的報(bào)表,以確定哪種報(bào)表構(gòu)造方法適合您的需要。單擊''確定〃按鈕。如果選擇使用''報(bào)表專家〃,便會出現(xiàn)''報(bào)表專家〃對話框,并帶有數(shù)據(jù)資源管理器。為每個(gè)文件夾選擇所需數(shù)據(jù),完成''報(bào)表專家〃選項(xiàng)卡界面上的操作,然后單擊''完成〃來訪問CrystalReportDesigner和您的報(bào)表。是否需要?jiǎng)討B(tài)設(shè)置數(shù)據(jù)源?CrystalReports通過數(shù)據(jù)庫驅(qū)動程序與數(shù)據(jù)庫連接。每個(gè)驅(qū)動程序都被編寫為可處理特定數(shù)據(jù)庫類型或數(shù)據(jù)庫訪問技術(shù)。拉和推模型,為了向開發(fā)人員提供最靈活的數(shù)據(jù)訪問方法,CrystalReports數(shù)據(jù)庫驅(qū)動程序被設(shè)計(jì)為可同時(shí)提供數(shù)據(jù)訪問的拉模型和推模型。拉模型pull:在拉模型中,驅(qū)動程序?qū)⑦B接到數(shù)據(jù)庫并根據(jù)需要將數(shù)據(jù)'拉〃進(jìn)來。使用這種模型時(shí),與數(shù)據(jù)庫的連接和為了獲取數(shù)據(jù)而執(zhí)行的SQL命令都同時(shí)由CrystalReports本身處理,不需要開發(fā)人員編寫代碼。如果在運(yùn)行時(shí)無須編寫任何特殊代碼,則使用拉模型。推模型push:相反,推模型需要開發(fā)人員編寫代碼以連接到數(shù)據(jù)庫,執(zhí)行SQL命令以創(chuàng)建與報(bào)表中的字段匹配的記錄集或數(shù)據(jù)集,并且將該對象傳遞給報(bào)表。該方法使您可以將連接共享置入應(yīng)用程序中,并在CrystalReports收到數(shù)據(jù)之前先將數(shù)據(jù)篩選出來。4)從ADO.NET數(shù)據(jù)集制作報(bào)表從數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)集對象在項(xiàng)目中新建一個(gè)架構(gòu)文件:在解決方案資源管理器中,右擊項(xiàng)目名,指向'添加〃,然后單擊''添加新項(xiàng)〃。在'添加新項(xiàng)〃對話框的''類別〃區(qū)域,展開文件夾,然后選擇''數(shù)據(jù)〃。在''模板〃區(qū)域選擇''數(shù)據(jù)集〃。接受默認(rèn)名稱Dataset1.xsd。這就創(chuàng)建了一個(gè)新的架構(gòu)文件(Dataset1.xsd),以后將用它來生成強(qiáng)類型數(shù)據(jù)集。該架構(gòu)文件將顯示在ADO.NET數(shù)據(jù)集設(shè)計(jì)器中。指定數(shù)據(jù)庫位置:在服務(wù)器資源管理器中,右擊''數(shù)據(jù)連接〃并選擇''添加連接〃。在''數(shù)據(jù)鏈接屬性〃對話框中,單擊''提供程序〃選項(xiàng)卡,然后選擇一個(gè)提供程序(例如MicrosoftOLEDBProviderforSQLServer)。單擊''連接〃選項(xiàng)卡,然后指定您的數(shù)據(jù)庫所在位置。在所需位置輸入服務(wù)器和登錄信息。單擊''確定〃按鈕。此時(shí),您的數(shù)據(jù)庫及其表和字段就出現(xiàn)在服務(wù)器資源管理器的''數(shù)據(jù)連接〃節(jié)點(diǎn)下面。在解決方案資源管理器中,雙擊Datasetl.xsd(如果它尚不是活動視圖)。Datasetl.xsd現(xiàn)在應(yīng)顯示在''數(shù)據(jù)集〃選項(xiàng)卡中。若要為數(shù)據(jù)集建立架構(gòu),請將需要的表從服務(wù)器資源管理器中拖動到Dataset1.xsd的''數(shù)據(jù)集〃選項(xiàng)卡上。單擊''保存Datasetl.xsd’^保存''Datasetl.xsd'^件。在“生成〃菜單上,單擊''生成〃為項(xiàng)目生成數(shù)據(jù)集對象。ADO.NET數(shù)據(jù)集對象提供數(shù)據(jù)的描述,從它可以向Crystalreport添加表。使用CrystalReportDesigner中的''數(shù)據(jù)庫專家〃從ADO.NET數(shù)據(jù)集對象添加表。請?jiān)谑褂?'報(bào)表專家〃創(chuàng)建新報(bào)表時(shí)調(diào)用''數(shù)據(jù)庫專家〃?;蛘?,要從一個(gè)已經(jīng)使用ADO.NET建立好的報(bào)表中訪問''數(shù)據(jù)庫專家〃,請?jiān)赗eportDesigner中右擊,指向''數(shù)據(jù)庫〃,然后單擊''添加/刪除數(shù)據(jù)庫〃。將報(bào)表連接到ADO.NET數(shù)據(jù)集對象(1)在“數(shù)據(jù)庫專家〃中,展開''項(xiàng)目數(shù)據(jù)〃文件夾。⑵展開''ADO.NET數(shù)據(jù)集‘文件夾。選擇所需數(shù)據(jù)集對象。例如,如果當(dāng)時(shí)使用的是從項(xiàng)目''WindowsApplicationl”的架構(gòu)文件''Datasetl.xsd〃中生成的數(shù)據(jù)集對象,則應(yīng)該選擇''WindowsApplicationl.Datasetl”。選擇要向報(bào)表中添加的表,和使用其他數(shù)據(jù)源一樣。動態(tài)改變數(shù)據(jù)源的代碼DataSetdsdataSet=newDataSet();rptClient()oRpt=newrptClient();//已建立的報(bào)表rptClientOleDbDataAdapterda=newOleDbDataAdapter("select*fromTableName",conn);da.Fill(dsdataSet,"TableName");〃使用''報(bào)表引擎〃對象模型將填充的數(shù)據(jù)集,傳遞給報(bào)表oRpt.SetDataSource(dsdataSet.Tables(0));〃將帶有數(shù)據(jù)的報(bào)表對象綁定到Windows窗體查看器,rptVew(CrystalReportViewer控件)rptVew.ReportSource=oRpt;注意FillDataSet方法可連接到指定的數(shù)據(jù)庫,提取數(shù)據(jù),然后斷開數(shù)據(jù)庫連接。如果您希望將數(shù)據(jù)庫中的多個(gè)表添加到報(bào)表中,請使用SQLJOIN語句將這些表聯(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è)工程⑵往FORM1中添加一個(gè)CrystalReportViewer控件(3)在服務(wù)器資源管理器中連接到SQLSERVER2000上的Northwind數(shù)據(jù)庫(4)添加一個(gè)數(shù)據(jù)集Dataset1,將服務(wù)器資源管理器中的Orders和OrderDetails加入到數(shù)據(jù)集中。添加一個(gè)水晶報(bào)表,使用報(bào)表專家,在項(xiàng)目數(shù)據(jù)中選擇“ADO.NET數(shù)據(jù)集〃,插入表Orders和OrderDetails,“鏈接〃中是關(guān)聯(lián)字段的鏈接,在''字段〃中選擇要顯示的主表和明細(xì)表的字段,組中選擇分組依據(jù)為Orders表OrdersID字段,總計(jì),圖表,選擇(可進(jìn)行篩選),樣式(可設(shè)置報(bào)表標(biāo)題),可自行設(shè)置。設(shè)置完后,點(diǎn)擊完成。在報(bào)表設(shè)計(jì)器中調(diào)整需要顯示的字段的位置、寬度等。在窗口中添加代碼。publicPrintForm(){InitializeComponent();OleDbConnectionconn=newOleDbConnection("datasource=PMSERVER;initialcatalog=Northwind;userid=sa;password=sa");Dataset1()ds=newDataset1();OleDbDataAdapterda1=newOleDbDataAdapter("select*fromorders",conn);da1.Fill(ds,"orders");OleDbDataAdapterda2=newOleDbDataAdapter("select*from[OrderDetails]",conn);da2.Fill(ds,"OrderDetails");CrystalReport1oCR=newCrystalReport1();oCR.SetDataSource(ds);this.crystalReportViewerl.ReportSource=oCR;}(8)運(yùn)行程序3、水晶報(bào)表登陸失敗usingCrystalDecisions.Shared;〃聲明所需變量。TableLogOnInfologOnInfo=newTableLogOnInfo();〃對報(bào)表中的每個(gè)表依次循環(huán)。for(inti=0;i<Report.Database.Tables.Count-1;i++){〃設(shè)置當(dāng)前表的連接信息。logOnInfo.ConnectionInfo.ServerName=serverNameTxt.Text;logOnInfo.ConnectionInfo.DatabaseName=dbNameTxt.Text;logOnInfo.ConnectionInfo.UserID=userNameTxt.Text;logOnInfo.ConnectionInfo.Password=passwordTxt.Text;Report.Database.Tables[i].ApplyLogOnInfo(logOnInfo);}注意受密碼保護(hù)的MicrosoftAccess和Paradox等PC數(shù)據(jù)庫也使用該方法,但LogOnInfo.ServerName為數(shù)據(jù)文件的路徑,LogOnInfo.DatabaseName要保留為空。TableLogOnInfo是屬于CrystalDecisions.Shared命名空間的成員。要添加引用:usingCrystalDecisions.Shared;。4、水晶報(bào)表應(yīng)用程序的發(fā)布1)安裝部署安裝部署時(shí),把水晶報(bào)表的msm打進(jìn)去,注冊到服務(wù)器,要部署使用CrystalReportsforVisualStudio.NET2003的程序,首先,找到以下7個(gè)文件(你可以'C:\ProgramFiles\CommonFiles\MergeModules'文件夾下找到):Crystal_Database_Access2003.msmCrystal_Database_Access2003_chs.msmCrystal_Managed2003.msmCrystal_Managed2003_chs.msmCrystal_regwiz2003.msmVC_User_CRT71_RTL_X86_---.msmVC_User_STL71_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端住宅小區(qū)物業(yè)保安勞務(wù)服務(wù)合同范本
- 2025年度購房貸款個(gè)人信息保護(hù)合同
- 2025年度游樂園項(xiàng)目場地使用權(quán)及設(shè)施維護(hù)合作協(xié)議
- 2025年度水田承包與農(nóng)業(yè)品牌建設(shè)合作協(xié)議
- 二零二五年度白蟻防治服務(wù)合同-城市綠化帶白蟻防治
- 二零二五年度游艇俱樂部船舶租賃代理合同
- 二零二五年度餐飲企業(yè)員工勞動合同法律服務(wù)與保障
- 2025年度互聯(lián)網(wǎng)簽訂方協(xié)議詳細(xì)流程與網(wǎng)絡(luò)安全責(zé)任追究協(xié)議
- 二零二五年度二手電腦及配件交易合同
- 二零二五年度綠色能源股份轉(zhuǎn)讓合同
- 煤焦化焦油加工工程設(shè)計(jì)規(guī)范
- 2024年人教版小學(xué)三年級信息技術(shù)(下冊)期末試卷附答案
- 新蘇教版三年級下冊科學(xué)全冊知識點(diǎn)(背誦用)
- 鄉(xiāng)鎮(zhèn)風(fēng)控維穩(wěn)應(yīng)急預(yù)案演練
- 腦梗死合并癲癇病人的護(hù)理查房
- 蘇教版四年級上冊脫式計(jì)算300題及答案
- 犯罪現(xiàn)場保護(hù)培訓(xùn)課件
- 扣款通知單 采購部
- 電除顫操作流程圖
- 湖北教育出版社三年級下冊信息技術(shù)教案
- 設(shè)計(jì)基礎(chǔ)全套教學(xué)課件
評論
0/150
提交評論