水晶報(bào)表是一個(gè)功能強(qiáng)大的報(bào)表工具_(dá)第1頁
水晶報(bào)表是一個(gè)功能強(qiáng)大的報(bào)表工具_(dá)第2頁
水晶報(bào)表是一個(gè)功能強(qiáng)大的報(bào)表工具_(dá)第3頁
水晶報(bào)表是一個(gè)功能強(qiáng)大的報(bào)表工具_(dá)第4頁
水晶報(bào)表是一個(gè)功能強(qiáng)大的報(bào)表工具_(dá)第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論