日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Visual Studio 水晶报表Crystal Reports

發(fā)布時(shí)間:2023/12/14 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual Studio 水晶报表Crystal Reports 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

20180114 10:43:31?junxingtx?閱讀數(shù):992更多

下載插件地址:https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

插件博客地址

https://blog.csdn.net/xzg58753795/article/details/81943416

環(huán)境:Visual Studio 2015, C#;

博客轉(zhuǎn)載地址:https://blog.csdn.net/zshuaihua/article/details/25786077

本文主要包含以下內(nèi)容:

一、ReportViewer使用小例子的完整步驟(新建-設(shè)計(jì)-編碼-調(diào)試-結(jié)果);

二、ReportViewer使用過程常見問題及關(guān)鍵注意點(diǎn)(僅為本人個(gè)人觀點(diǎn));

三、參考資料;

四、心得體會(huì);

===================================================================================================================================


?

一、ReportViewer使用小例子的演示。

1、新建項(xiàng)目。

新建一個(gè)Windows窗口程序項(xiàng)目,命名為“Demo"

2、加入ReportViewer控件。

1)在默認(rèn)出現(xiàn)的Form1.cs[設(shè)計(jì)]視圖中手動(dòng)調(diào)節(jié)下Form1窗體的大小,左側(cè)工具箱-->報(bào)表-->雙擊其中的”ReportViewer"

(圖 1
?

2)切換至設(shè)計(jì)窗口,選擇ReportVierwer控件右上角黑色小三角,顯示“ReportViewer任務(wù),選擇在父容器中停靠

(圖 2
?

3、添加數(shù)據(jù)集。

1)在解決方案資源管理器的本項(xiàng)目”Demo“上右鍵,-->添加-->新建項(xiàng)...。在已安裝的模板(左側(cè))選擇數(shù)據(jù),在對應(yīng)的右側(cè)欄中選數(shù)據(jù)集,并為其命名為”testDataSet.xsd“

(圖 3
?

2)在自動(dòng)顯示的testDataSet.xsd窗口空白處右鍵,-->添加-->數(shù)據(jù)表。

(圖 4
?

3)點(diǎn)擊表頭為其改名為”testDataTable",并在下一行的空白處右鍵,-->添加-->列。按快捷鍵“Ctrl + L”,共建四個(gè)列,并將列名自定義修改。(及時(shí)保存)

(圖 5
?

4、添加報(bào)表。

1)同添加數(shù)據(jù)集相似。在項(xiàng)目名稱上右鍵,-->添加-->新建項(xiàng)...已安裝模板中選擇”Reporting“,相應(yīng)右側(cè)選擇報(bào)表,在下面名稱中改為”testReport.rdlc“

(圖 6
?

2)在新視圖的主體部分(黑色方框內(nèi)部為主體部分,外部為報(bào)表部分)空白處右鍵,-->插入-->表。

( 7)
?

3)會(huì)自動(dòng)彈出數(shù)據(jù)集屬性對話框,將名稱改為”DataSetName"(這個(gè)名稱很重要,后面代碼中要用到,故要記清),數(shù)據(jù)源選擇剛新建的“testDataSet",”可用數(shù)據(jù)集會(huì)自動(dòng)選擇”testDataTable“,"確定

( 8)
?

4)在testReport.rdlc[設(shè)計(jì)]視圖下,剛建的只有三列,在任一單元格上右鍵,-->插入列-->靠右。在第一行的表頭輸入這三列的表頭,在第二行的數(shù)據(jù)行,鼠標(biāo)移動(dòng)每個(gè)單元格上,點(diǎn)擊單元格右上角的圖標(biāo),選擇相應(yīng)的列。

( 9)
?

5、綁定報(bào)表。

返回”Form1.cs[設(shè)計(jì)]"視圖,如圖 2類似,這次點(diǎn)擊選擇報(bào)表右側(cè)的下拉條,選擇我們新建的報(bào)表“demo.testReport.rdlc",全部保存。

( 10)
?

6、添加代碼。

查看”Form1.cs“的代碼,在Form1_Load()方法中添加代碼。代碼如下(以下只是Form1_Load()方法的代碼,不是全部,添加時(shí)需要在using下多加一行)。

[csharp]?view plain?copy

  • <span?style="font-size:14px;">??using?Microsoft.Reporting.WinForms;</span>??
  • [csharp]?view plain?copy

  • <span?style="font-size:14px;">??private?void?Form1_Load(object?sender,?EventArgs?e)??
  • ????????{??
  • ????????????loadReport();??
  • ????????????this.reportViewer1.RefreshReport();??
  • ????????}??
  • ??
  • ????????public?void?loadReport()??
  • ????????{??
  • ????????????DataTable?dt?=?new?DataTable();??
  • ????????????//定義本地?cái)?shù)據(jù)表的列,名稱應(yīng)跟之前所建的testDataTable表中列相同。??
  • ????????????dt.Columns.Add("Column1",?typeof(string));??
  • ????????????dt.Columns.Add("Column2",?typeof(string));??
  • ????????????dt.Columns.Add("Column3",?typeof(string));??
  • ????????????dt.Columns.Add("Column4",?typeof(string));??
  • ??
  • ????????????//動(dòng)態(tài)生成一些測試用數(shù)據(jù)??
  • ????????????for?(int?i?=?0;?i?<?50;?i++)??
  • ????????????{??
  • ????????????????DataRow?row?=?dt.NewRow();??
  • ????????????????row[0]?=?"Test01-"?+?i.ToString();??
  • ????????????????row[1]?=?"Test02-"?+?i.ToString();??
  • ????????????????row[2]?=?"Test03-"?+?i.ToString();??
  • ????????????????row[3]?=?"Test04-"?+?i.ToString();??
  • ????????????????dt.Rows.Add(row);??
  • ????????????}??
  • ??
  • ????????????//設(shè)置本地報(bào)表,使程序與之前所建的testReport.rdlc報(bào)表文件進(jìn)行綁定。??
  • ????????????this.reportViewer1.LocalReport.ReportPath?=?"testReport.rdlc";??
  • ????????????this.reportViewer1.LocalReport.DataSources.Clear();??
  • ????????????this.reportViewer1.LocalReport.DataSources.Add(new?ReportDataSource("DataSetName",dt));??
  • ????????}</span>??
  • 7、運(yùn)行效果。


    ===================================================================================================================================

    二、需要注意的幾個(gè)地方。

    1、代碼中new ReportDataSource("DataSetName",dt)),這里的DataSetName是上面一、4、(3里那個(gè)名字,而不是所建的數(shù)據(jù)集文件”testDataSet.xsd"的名字。我之前因?yàn)榘堰@里弄錯(cuò),花了好長時(shí)間才修正。

    2、按上述步驟弄完后,也許還不好出來想要的結(jié)果。可能會(huì)彈出本地報(bào)表處理期間出錯(cuò)等錯(cuò)誤提示。

    解決方法:將“testReport.rdlc"文件復(fù)制一份放到提示的指定Debug目錄下。

    上述方法固然可以,但每次都要手動(dòng)將文件進(jìn)行復(fù)制,顯然不合適。這時(shí)其實(shí)只需要在解決方案資源管理器中點(diǎn)擊報(bào)表文件”testReport.rdlc",在下方的屬性一欄中,從復(fù)制到輸出目錄后面的下拉菜單中選擇始終復(fù)制。這樣,便不用手動(dòng)往Debug目錄復(fù)制文件了。(也有網(wǎng)友將屬性中的生成操作一項(xiàng)的嵌入的資源改為內(nèi)容。但對本例不適用,僅作說明)

    ===================================================================================================================================

    三、參考資料。

    1、本例最初的參考:參考資料1

    2、對于如何自定義報(bào)表每頁顯示多少行的參考:參考資料2

    3、關(guān)于報(bào)表中分組的參考:參考資料3

    4、調(diào)試過程遇到問題解決思路的參考:參考資料4

    ===================================================================================================================================

    ?

    總結(jié)

    以上是生活随笔為你收集整理的Visual Studio 水晶报表Crystal Reports的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。