自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解C#調用水晶報表的實現(xiàn)

開發(fā) 后端
針對C#調用水晶報表的開發(fā)過程中經(jīng)常會遇到的問題,我們來看看C#調用水晶報表的實現(xiàn)需要注意什么,以及具體的實現(xiàn)過程。

C#調用顯示水晶報表是我們開發(fā)中經(jīng)常會遇到的實用需求,那么C#調用水晶報表具體的操作是什么呢?C#調用水晶報表需要注意什么以及涉及到的方法的使用情況是什么呢?下面讓我們看看具體的開發(fā)實例:

C#調用水晶報表實實例演示:

  1. /// ﹤summary﹥   
  2. /// CS下在C#調用水晶報表   
  3. /// 水晶報表在CrystalReport9中定義,  
  4. ///數(shù)據(jù)源可以是表、視圖、存儲過程(最后一句必須是select語句),可以包含子報表   
  5. /// 調用實例:LoadReport  
  6. ///(this.crystalReportViewer1,"D:\\66.rpt","kys","hrdb","sa","kys");   
  7. ///   
  8. /// ﹤/summary﹥   
  9. /// ﹤param name="ReportViewer"﹥  
  10. 報表瀏覽器CrystalDecisions.Windows.Forms.CrystalReportViewer  
  11. ﹤/param﹥   
  12. /// ﹤param name="StrRptPaht"﹥報表文件的路徑﹤/param﹥   
  13. /// ﹤param name="StrServer"﹥服務器﹤/param﹥   
  14. /// ﹤param name="StrDatabase"﹥數(shù)據(jù)庫﹤/param﹥   
  15. /// ﹤param name="StrUser"﹥登陸名稱﹤/param﹥   
  16. /// ﹤param name="StrPassword"﹥密碼﹤/param﹥   
  17. public void LoadReport(  
  18. CrystalDecisions.Windows.Forms.CrystalReportViewer   
  19. ReportViewer,string StrRptPaht,   
  20. string StrServer, string StrDatabase,   
  21. string StrUser, string StrPassword)   
  22. {   
  23.  
  24. string StrParaName="";   
  25. string StrRptTableName="";   
  26. string StrLocation="";   
  27. ReportDocument Rpt =new ReportDocument();  
  28. //表示一個報表,并且包含定義、格式化、加載、導出和打印該報表的屬性和方法   
  29. SubreportObject SubRptObj;  
  30. //表示放在報表中的子報表。子報表是主報表內的獨立或鏈接的報表。   
  31. ReportDocument SubRpt;   
  32.  
  33. ParameterFields ParamFields=new ParameterFields();   
  34. ParameterField ParamField ;   
  35. ParameterDiscreteValue ParamDiscreteValue;   
  36.  
  37. TableLogOnInfo LogOnInfo;   
  38.  
  39. try   
  40. {   
  41. //C#調用水晶報表之加載報表   
  42. Rpt.Load(StrRptPaht);   
  43. //報表參數(shù)的賦值*******C#調用水晶報表**   
  44.  
  45. foreach(CrystalDecisions.CrystalReports.  
  46. Engine.ParameterFieldDefinition ParaFieldDef   
  47. in Rpt.DataDefinition.ParameterFields )   
  48. {   
  49. //只為主報表的參數(shù)進行賦值   
  50. if(ParaFieldDef.ReportName=="")   
  51. {   
  52. StrParaName=ParaFieldDef.Name;   
  53.  
  54. ParamField=new ParameterField();   
  55. ParamDiscreteValue=new ParameterDiscreteValue();   
  56. ParamField.ParameterFieldName = StrParaName;   
  57. //注:用戶自定義為參數(shù)賦值!!!!!!!!!!!!!!!!!!!!!!!!!   
  58. if(StrParaName.ToLower()=="depid")   
  59. ParamDiscreteValue.Value = "dg00";   
  60. else   
  61. ParamDiscreteValue.Value = "ky0001";   
  62. //C#調用水晶報表   
  63. ParamField.CurrentValues.Add (ParamDiscreteValue);   
  64. ParamFields.Add (ParamField);   
  65. }   
  66. }   
  67. //C#調用顯示水晶報表**   
  68. // 將參數(shù)字段集合放入查看器控件。   
  69. if(ParamFields.Count﹥0)   
  70. ReportViewer.ParameterFieldInfo = ParamFields;   
  71.  
  72. //設置數(shù)據(jù)庫連接參數(shù)   
  73. ConnectionInfo CnInfo = new ConnectionInfo();   
  74. CnInfo.ServerName = StrServer;   
  75. CnInfo.DatabaseName = StrDatabase;   
  76. CnInfo.UserID = StrUser;   
  77. CnInfo.Password = StrPassword;   
  78. foreach( CrystalDecisions.CrystalReports.  
  79. Engine.Table DTable in Rpt.Database.Tables)   
  80. {   
  81. LogOnInfo=DTable.LogOnInfo;   
  82. LogOnInfo.ConnectionInfo=CnInfo;   
  83. DTable.ApplyLogOnInfo(LogOnInfo);   
  84. //更換服務器數(shù)據(jù)庫驗證   
  85. StrRptTableName=DTable.Location.Substring(  
  86. DTable.Location.LastIndexOf(".") + 1);   
  87. StrLocation=StrDatabase+".dbo."+StrRptTableName;   
  88. DTable.Location=StrLocation;   
  89.  
  90.  
  91. #region 對所有子報表更換服務器數(shù)據(jù)庫驗證   
  92. //獲取主報表的所有子報表   
  93. foreach (ReportObject obj in Rpt.  
  94. ReportDefinition.ReportObjects)   
  95. {   
  96. //判斷是否為子報表對象   
  97. if (obj.Kind == ReportObjectKind.SubreportObject)   
  98. {   
  99. SubRptObj = (SubreportObject) obj;   
  100. SubRpt = Rpt.OpenSubreport(SubRptObj.SubreportName);   
  101.  
  102. //讀取子報表的所有數(shù)據(jù)庫表   
  103. foreach (CrystalDecisions.CrystalReports.  
  104. Engine.Table DTable in SubRpt.Database.Tables)   
  105. {   
  106. LogOnInfo = DTable.LogOnInfo;   
  107. LogOnInfo.ConnectionInfo = CnInfo;   
  108.  
  109. //加載數(shù)據(jù)庫連接信息   
  110. DTable.ApplyLogOnInfo(LogOnInfo);   
  111. //更換服務器和數(shù)據(jù)庫   
  112. StrRptTableName=DTable.Location.Substring(  
  113. DTable.Location.LastIndexOf(".") + 1);   
  114. StrLocation=StrDatabase+".dbo."+StrRptTableName;   
  115. DTable.Location=StrLocation;   
  116. }   
  117. }   
  118.  
  119. #endregion   
  120.  
  121. //將報表賦給報表瀏覽器   
  122. ReportViewer.ReportSource=Rpt;   
  123. //ReportViewer.RefreshReport();   
  124.  
  125. }   
  126. catch(Exception ee)   
  127. {   
  128. string StrMsg=ee.Source+ee.Message;   
  129. System.Windows.Forms.MessageBox.Show(StrMsg);   
  130.  
  131. }   
  132. }  

C#調用水晶報表的基本內容就向你介紹到這里,希望那個對你了解和學習C#調用水晶報表有所幫助。

【編輯推薦】

  1. 搞定C#創(chuàng)建PDF文件的五大步驟
  2. C#創(chuàng)建一個文件的具體實現(xiàn)淺析
  3. C#打開一個文件的操作詳解
  4. C#實現(xiàn)string和byte數(shù)組的轉換
  5. C# Byte數(shù)組轉換String詳解
責任編輯:仲衡 來源: CSDN
相關推薦

2009-08-31 15:11:23

C#調用水晶報表

2009-08-31 16:01:28

C#水晶報表數(shù)據(jù)獲取方

2009-09-07 19:03:08

2009-08-02 11:48:58

ASP.NET水晶報表ASP.NET

2009-11-05 14:03:28

Visual Stud

2009-07-29 09:29:06

ASP.NET水晶報表

2009-12-15 17:20:07

VS 水晶報表

2009-07-30 13:57:39

ASP.NET水晶報表ASP.NET

2010-01-14 10:52:13

VB.NET水晶報表

2009-08-31 16:09:42

.net水晶報表使用學

2009-10-16 13:30:51

VB.NET水晶報表控

2009-12-01 13:50:19

VS2003水晶報表

2009-08-25 17:00:32

ASP.NET水晶報表

2009-11-26 13:27:10

VS2003水晶報表

2009-11-26 13:40:53

2009-08-03 13:13:52

C#調用Outlook

2009-08-25 17:43:17

C#串口監(jiān)聽

2009-09-02 10:49:46

C#調用析構方法

2009-08-25 18:04:30

C#實現(xiàn)Singlet

2009-09-09 18:50:23

C# 加密RSA
點贊
收藏

51CTO技術棧公眾號