




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、水晶報(bào)表是一個(gè)功能強(qiáng)大的報(bào)表工具,現(xiàn)在已經(jīng)被Microsoft Visual Studio 2005(下文以VS2005簡稱)集成在一起。喜歡水晶報(bào)表的朋友可以方便使用了。我把水晶報(bào)表在vs2005的使用方法總結(jié)一下,供大家參考。首先介紹一下我用的軟件環(huán)境:Microsoft Visual Studio 2005;Microsoft SQL Server 2005【數(shù)據(jù)用例】服務(wù)器:SQLEXPRESS數(shù)據(jù)庫名:Test數(shù)據(jù)庫表:T【說明】水晶報(bào)表在應(yīng)用時(shí)分兩種方法,分別是拉模式(PULL)、推模式(PUSH)。拉模式:在水晶報(bào)表生成時(shí)的 數(shù)據(jù)源是從水晶報(bào)表文件中的SQL語句從數(shù)據(jù)庫中提取的,
2、在編程時(shí)不用重寫SQL語句,但要加上登錄信息(具體方法,后面介紹)。推模式:在水晶報(bào)表生成 時(shí)的數(shù)據(jù)源,是用編程時(shí)重寫水晶報(bào)表中SQL語句而生成的dataset對(duì)像。也就是說,推模式是用dataset組裝水晶報(bào)表。水晶報(bào)表組件介紹。水晶報(bào)表在VS2005中有兩種組件,在WEB項(xiàng)目是分別是CrystalReportSource,CrystalReportViewer。在FORM項(xiàng)目里是分別是crystalReport,CrystalReportViewer。CrystalReportSource,crystalReport是水晶報(bào)表的數(shù)據(jù)提供者;CrystalReportViewer是水晶報(bào)表的
3、瀏覽器。另外還要介紹一下水的報(bào)表的文件是以rpt為擴(kuò)展名的文件,該文件可以用VS2005生成。下面分別介紹具體操作方法:拉模式(PULL):在拉模式中如要在水晶報(bào)表中的SQL語句加上條件參數(shù)時(shí)要用?參數(shù)名方式給出。例:“Select T1, T2, T3 FROM T Where T1=''?parm''” parm就是參數(shù)名以下例子中所用到的水晶報(bào)表文件中使用的SQL語句是“Select T1, T2, T3 FROM T Where T1=''?parm''” parm就是參數(shù)名?!網(wǎng)EB方式下】using CrystalDe
4、cisions.Shared;using CrystalDecisions.CrystalReports.Engine; /<summary> /功能:拉模式提取水晶報(bào)表 /個(gè)人主頁: /</summary> /<param name="sender"></param> /<param name="e"
5、;></param> protected void Button_pull_Click(object sender, EventArgs e)/ CrystalReport.rpt是水晶報(bào)表文件的名稱;CrystalReportSource1是從工具箱加到頁面上的水晶報(bào)表數(shù)據(jù)源對(duì)像。 CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt");/
6、 SetDatabaseLogon 拉模式中必須用這個(gè)方法來設(shè)置登錄信息,參數(shù)一:用戶名;參數(shù)二:密碼;參數(shù)三:服務(wù)器;參數(shù)四:數(shù)據(jù)庫名 CrystalReportSource1.ReportDocument.SetDatabaseLogon("sa", "123456", "SYWZSWLSQLEXPRESS", "Test");/給水晶報(bào)表傳參數(shù),參數(shù)一:是參數(shù)名,參數(shù)二:參數(shù)值;
7、 CrystalReportSource1.ReportDocument.SetParameterValue("Title", "這是一個(gè)測(cè)試報(bào)表"); CrystalReportSource1.ReportDocument.SetParameterValue("Parm", "1");/綁定水晶報(bào)表數(shù)據(jù)源。 Cr
8、ystalReportSource1.DataBind();/ CrystalReportViewer1是水晶報(bào)表瀏覽器,下面是給該瀏覽器賦上對(duì)像 CrystalReportViewer1.ReportSource = CrystalReportSource1; CrystalReportViewer1.DataBind(); 【FORM方式下】/在 FORM方式下代碼同WEB方式,用crys
9、talReport控件換掉了CrystalReportSource;用 crystalReportViewer換掉了CrystalReportViewer;這兩個(gè)控件都可以在工具箱里找到。同時(shí)在編程時(shí)去掉 DataBind()方法。 private void Form1_Load(object sender, EventArgs e)
10、; crystalReport1.Load(Application.StartupPath + "CrystalReport.rpt"); crystalReport1.SetDatabaseLogon("sa", "123456", "SYWZSWLSQLEXPRESS", "Test"); &
11、#160; crystalReport1.SetParameterValue("Title", "這是一個(gè)測(cè)試報(bào)表"); crystalReport1.SetParameterValue("Parm", "1");
12、60; crystalReportViewer1.ReportSource = crystalReport1; 推模式(PUSH):在推模式中編程組裝的Dataset里的SQL語句中的字段要與水晶報(bào)表里的SQL語句字段一致。簡單的說,推模式中的水晶報(bào)表是個(gè)模板,把在設(shè)計(jì)器里報(bào)表的格式設(shè)好后,再組裝DataSet就可以生成報(bào)表了?!網(wǎng)EB方式下】using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports
13、.Engine;using System.Data.SqlClient; protected void Button_push_Click(object sender, EventArgs e) string sql = "Select T1, T2, T3 FROM T where T1=''a''" &
14、#160; string DBConfig_sql ="Data Source=SYWZSWLSQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456" DataSet ds = new DataSet(); SqlConnection sqlCon = ne
15、w SqlConnection(DBConfig_sql); SqlCommand sqlCmd = new SqlCommand(sql, sqlCon); SqlDataAdapter sqlAd = new SqlDataAdapter();
16、160; sqlAd.SelectCommand = sqlCmd; sqlAd.Fill(ds, "sql"); CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"); &
17、#160; /注意此處必需指明Dataset中的表的名稱,否則會(huì)提示“您請(qǐng)求的報(bào)表需要更多信息.”CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables"sql");/?中的參數(shù)可以不用賦值,即使賦了值也不起作用。 / CrystalReportSource1.ReportDocument.ParameterFields"Parm".CurrentV
18、alues.AddValue("1234567"); CrystalReportSource1.ReportDocument.ParameterFields"Title".CurrentValues.AddValue("這時(shí)推模式的報(bào)表樣例!"); CrystalReportSource1.DataBind();
19、; CrystalReportViewer1.ReportSource = CrystalReportSource1; CrystalReportViewer1.DataBind(); 【FORM方式下】private void Form1_Load(object sender, EventArgs e)
20、160; /推模式 string sql = "Select T1, T2, T3 FROM T where T1=''a''" string DBConfig_sql = "Data Source=S
21、YWZSWLSQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456" DataSet ds = new DataSet(); SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
22、160; SqlCommand sqlCmd = new SqlCommand(sql, sqlCon); SqlDataAdapter sqlAd = new SqlDataAdapter(); sqlAd.SelectCommand =
23、 sqlCmd; sqlAd.Fill(ds, "sql"); crystalReport1.Load(Application.StartupPath + "CrystalReport.rpt"); &
24、#160; crystalReport1.SetDataSource(ds.Tables"sql");/?中的參數(shù)可以不用賦值,即使賦了值也不起作用。 / CrystalReportSource1.ReportDocument.ParameterFields"Parm".CurrentValues.AddValue("1234567");
25、0; crystalReport1.ParameterFields"Title".CurrentValues.AddValue("這時(shí)推模式的報(bào)表樣例!"); crystalReportViewer1.ReportSource = crystalReport1;-水晶報(bào)表編程使用方法1.怎么讓組頁眉,在同一組中每一頁都顯示
26、0; 插入組的時(shí)候,在公用選項(xiàng)頁面選中“在每個(gè)頁面上重復(fù)組頁眉” 2.如何向 CrystalReportViewer 和 ReportDocument 傳遞參數(shù) 一、CrystalReportViewer 通過 CrystalReportViewer.ParameterFieldInfo 屬性
27、0; 1、crystalreportviewer 成員 公共實(shí)例屬性 ParameterFieldInfo(從 CrystalRep
28、ortViewerbase 繼承) ParameterFields。獲取或設(shè)置參數(shù)字段集合。 二、reportdocument 通過 ReportDocument.DataDefinition.ParameterFields 屬性 1、reportdocument
29、 成員 公共實(shí)例屬性 DataDefinition DataDefinition。獲取 DataDefinition 對(duì)象。 2、datadefinition 成員
30、160; 公共實(shí)例屬性 ParameterFields ParameterFieldDefinitions。獲取 ParameterFieldDefinitions 集合。 三、參數(shù)字段運(yùn)行時(shí)自定義(crystalreportviewer)
31、 參考: 設(shè)置參數(shù) | Windows 窗體查看器的綁定選項(xiàng) | Web 窗體查看器的綁定選項(xiàng) 可支持用戶在 Crystal 報(bào)表中通過參數(shù)進(jìn)行輸入。這種參數(shù)有多種用途。例如:
32、160; 使參數(shù)基于數(shù)據(jù)庫字段并允許用戶指定該字段的值,以便對(duì)報(bào)表中的數(shù)據(jù)進(jìn)行篩選。 使用參數(shù)字段將條件格式應(yīng)用于報(bào)表。 使用參數(shù)字段來定義排序順序。
33、60; 下列示例說明如何在運(yùn)行時(shí)通過代碼設(shè)置參數(shù)字段值。此例解釋了如何設(shè)置兩個(gè)不同的參數(shù):第一個(gè)是多值離散參數(shù),第二個(gè)是區(qū)域值參數(shù)。 在運(yùn)行時(shí)修改參數(shù)字段c# / 聲明將參數(shù)傳遞給/查看器控件所需的變量。ParameterFields paramFields = new ParameterFields ();ParameterField paramField = new ParameterField ();ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
34、ParameterRangeValue rangeVal = new ParameterRangeValue ();/ 第一個(gè)參數(shù)是具有多個(gè)值的離散參數(shù)。/ 設(shè)置參數(shù)字段的名稱,它必須/和報(bào)表中的參數(shù)相符。paramField.ParameterFieldName = "客戶姓名"/ 設(shè)置第一個(gè)離散值并將其傳遞給該參數(shù)。discreteVal.Value = "AIC Childrens"paramField.CurrentValues.Add (discreteVal);/ 設(shè)置第二個(gè)離散值并將其傳遞給該參數(shù)。/ discreteVal 變量被設(shè)置為新
35、值,這樣,以前的設(shè)置/就不會(huì)被覆蓋。discreteVal = new ParameterDiscreteValue ();discreteVal.Value = "Aruba Sport"paramField.CurrentValues.Add (discreteVal);/ 將該參數(shù)添加到參數(shù)字段集合。paramFields.Add (paramField);/ 第二個(gè)參數(shù)為區(qū)域值。paramField 變量/被設(shè)置為新值,這樣,以前的設(shè)置就不會(huì)被覆蓋。paramField = new ParameterField ();/ 設(shè)置參數(shù)字段的名稱,它必須/和報(bào)表中的參數(shù)相
36、符。paramField.ParameterFieldName = "客戶 ID"/ 設(shè)置范圍的開始值和結(jié)束值并將該范圍傳遞給/該參數(shù)。rangeVal.StartValue = 42;rangeVal.EndValue = 72;paramField.CurrentValues.Add (rangeVal);/ 將第二個(gè)參數(shù)添加到參數(shù)字段集合。paramFields.Add (paramField);/ 將參數(shù)字段集合放入查看器控件。crystalReportViewer1.ParameterFieldInfo = paramFields;更多資料請(qǐng)查看:3.設(shè)置Crys
37、tal Report Viewer 的外觀 設(shè)置 Crystal Report Viewer 的屬性: BestFitPage 布爾值。獲取或設(shè)置頁面視圖是大小合適還是用滾動(dòng)條進(jìn)行裁剪。 這個(gè)地方設(shè)為false后,設(shè)置Crystal Report Viewer 的寬度就可以去除滾動(dòng)條了。 說明 :目前有兩種情況,其中在從 Web 窗體查看器進(jìn)行打印時(shí)會(huì)出現(xiàn)問題:
38、0; BestFitPage屬性為默認(rèn)值“真”(即,沒有垂直或水平滾動(dòng)條),但PageZoomFactor大于 100。 BestFitPage 設(shè)置為“假”,Web 窗體查看器的高度小于報(bào)表頁的高度(即,有垂直滾動(dòng)條),而查看器的寬度大于或等于報(bào)表頁的寬度(即,沒有水平滾動(dòng)條)。 配合設(shè)置 Width、Height 來實(shí)現(xiàn)無空白和無滾動(dòng)條的顯示! DisplayGroupTree 布爾值。獲取或設(shè)置樹視圖是可見還是隱藏。
39、60; DisplayPage 布爾值。獲取或設(shè)置工具欄是可見還是隱藏。 DisplayToolbar 布爾值。獲取或設(shè)置工具欄上的轉(zhuǎn)到頁按鈕是可見還是隱藏。 PageZoomFactor Int32。獲取或設(shè)置報(bào)表的縮放因數(shù)。 SeparatePages 布爾值。獲取或設(shè)置報(bào)表頁是分開還是連接。 PageToTreeRatio Float64。設(shè)置組樹與報(bào)表視圖之間的大小比例。4.控制工具欄
40、的按鈕: 設(shè)置 Crystal Report Viewer 的屬性: HasGotoPageButton 布爾值。獲取或設(shè)置轉(zhuǎn)到頁按鈕的可見性。 HasLevelUpButton 布爾值。獲取或設(shè)置工具欄上的轉(zhuǎn)到上一頁按鈕是可見還是隱藏。 HasPageNavigationButtons 布爾值。獲取或設(shè)置工具欄上的頁面導(dǎo)航按鈕是可見還是隱藏。 HasRefreshButton 布
41、爾值。獲取或設(shè)置工具欄上的刷新按鈕是可見還是隱藏。 HasSearchButton 布爾值。獲取或設(shè)置工具欄上的搜索按鈕是可見還是隱藏。 HasZoomFactorList 布爾值。獲取或設(shè)置工具欄上的縮放因數(shù)列表是可見還是隱藏。5.在 Web 頁面里的布局: 在“設(shè)計(jì)視圖”,修改 CrystalReportViewer 的 Width、Height 屬性。 切換到窗體的“HTML 視圖”,修改 style 屬性。<CR:
42、CrystalReportViewer id="CrystalReportViewer1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server" Width="350px" Height="50px" EnableDrillDown="False" DisplayGroupTree="False"></CR:CrystalReportViewer
43、>6.除水晶報(bào)表的的公司LOGO 將 Crystal 公司的Logo 文件替換或刪除 (1)如果是用 VS.NET 里自帶的水晶報(bào)表C:Program FilesMicrosoft Visual Studio .NETCrystal ReportsViewersimagesToolBarlogo.gif (2)如果是用水晶報(bào)表 9.2C:Program FilesCommon FilesCrystal Decisions2.0crystalreportviewersimagesto
44、olbarcrlogo.gif7.替換水晶報(bào)表里的各種圖標(biāo)和圖片 (1)如果是用 VS.NET 里自帶的水晶報(bào)表C:Program FilesMicrosoft Visual Studio .NETCrystal ReportsViewersimages (2)如果是用水晶報(bào)表 9.2C:Program FilesCommon FilesCrystal Decisions2.0crystalreportviewersimages8.關(guān)于打印的時(shí)候安裝插件: 在 Crystal Repor
45、ts 的更新版本中,您可以使用新的 CrystalReportViewer.PrintMode 屬性來指定打印模式。其中包含兩個(gè)選擇項(xiàng):ActiveX 和 PDF。 當(dāng)屬性設(shè)置為PrintMode.PDF 時(shí),報(bào)表會(huì)在WEB服務(wù)器上導(dǎo)出為PDF,然后以數(shù)據(jù)流傳送到瀏覽器,使用者可以利用選項(xiàng),直接打印到打印機(jī)。這個(gè)選項(xiàng)是跨平臺(tái)相容的。當(dāng)屬性設(shè)置為PrintMode.ActiveX時(shí),ActiveX 打印控制項(xiàng)允許使用者將報(bào)表直接打印到本地打印機(jī)先下載 若要在 Crystal Reports for Visual Studio 2005 網(wǎng)站顯示 ca
46、b 包,需將下列 xml 語句加入網(wǎng)站的 web.config 文件(必須加到<configuration xmlns="<configSections><sectionGroup name="businessObjects"> <sectionGroup name="crystalReports"> <section name="printControl" type="System.Configuratio
47、n.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null"/> </sectionGroup></sectionGroup></configSections><businessObjects><crystalReports> <printControl>
48、; <add key="url" value="1/PrintControl.cab"/> -這里改為.CAB包所在地址 </printControl></crystalReports></businessObjects>注意:只有 Internet Explorer 才會(huì)支持 ActiveX 模式。若從非 Internet Explorer 的瀏覽器 (FireFox、Safari、Mozilla 等) 打印,將會(huì)恢復(fù)到 PDF 彈出對(duì)話框。然后在打印的頁面或直接在主窗體添加一個(gè)層,并在層中添加如下代碼(可以采用其他方式)<object id="CrystalPrintControl" classid="CLSID:BAEE131D-290A-4541-A50A-8936F159563A" codebase="ht
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》課件-第8章 鏈傳動(dòng)
- 預(yù)防夏季疾病班會(huì)課件
- 陶瓷地磚銷售培訓(xùn)
- 培訓(xùn)小組匯報(bào)展示
- 音樂課件背景圖片
- 電網(wǎng)側(cè)獨(dú)立儲(chǔ)能示范項(xiàng)目風(fēng)險(xiǎn)管理方案(參考范文)
- 汽車配套產(chǎn)業(yè)基地項(xiàng)目資金申請(qǐng)報(bào)告
- 物流業(yè)貨物運(yùn)輸安全預(yù)案
- 2025年動(dòng)物炭黑、動(dòng)物膠及其衍生物合作協(xié)議書
- 2025年射頻同軸電纜組件項(xiàng)目合作計(jì)劃書
- 公司崗位職級(jí)管理制度
- D500-D505 2016年合訂本防雷與接地圖集
- 漏肩風(fēng)(肩周炎)中醫(yī)臨床路徑及入院標(biāo)準(zhǔn)2020版
- 光面爆破知識(shí)講座課件
- 工程結(jié)構(gòu)檢測(cè)鑒定與加固第1章工程結(jié)構(gòu)檢測(cè)鑒定與加固概論課件
- 高鐵站裝飾裝修方案
- DB4401-T 112.1-2021 城市道路占道施工交通組織和安全措施設(shè)置+第1部分:交通安全設(shè)施設(shè)置-(高清現(xiàn)行)
- 質(zhì)量整改通知單(樣板)
- 杭州市高級(jí)中學(xué)2022年高一新生素質(zhì)測(cè)試(分班考)模擬試卷
- 《碳纖維片材加固混凝土結(jié)構(gòu)技術(shù)規(guī)程》(2022年版)
- 短視頻:策劃+拍攝+制作+運(yùn)營課件(完整版)
評(píng)論
0/150
提交評(píng)論