C#之VS自帶RDLC報表學習筆記

      最近一直在忙報表, 難得今天有空,把最近搗鼓的東西總結下。

      之前也是不知道怎麼弄這個報表, 從來沒接觸過。雖然知道可以用VS原生的報表工具來做,但是,官方給出的文檔還是少的可憐,網上的很多文章大多是關於  web 做報表的,很少能找到關於使用RDLC在winform中做報表的。谷歌 + 必應+ 百度,依然能找到關於winform做報表的還是很少。

       說到報表,大家肯定會想到和VS結合的比較緊密的是  水晶報表了。水晶報表做出來的東西很漂亮。接着可能就是  fastreport ,它也有十多年的報表經驗了,和VS銜接的也不錯。還有很多其他的報表工具,這裏就不枚舉了。說來說去,還是沒得微軟原生的工具好額,畢竟是自家的東西,自家的東西能和VS做到無縫連接。微軟就是強大……

     

      我使用的是VS2010開發工具。開發語言是 C#。

————————————先看看結果

      報表是這樣設計的:


      看看結果:


————————————步驟(中間有些步驟可以交換)

          1, 當然是新建一個winform窗體應用程序。

   

          2, 在添加新項中,找到左邊模版中的Reporting,在右邊找到報表,報表命名隨意。


         添加報表完成後,界面如下圖:


         可以在報表的空白處,點擊鼠標右鍵,在彈出的菜單中選擇  視圖->標尺 ,方便我們更好的設計報表的大小。


     注意:通常,RDLC報表,若將其打印到A4的紙上:

                 報表最大寬度爲 (上面的刻度:到16 後面的點)   


            報表的最大高度爲(上面的刻度:到25後面的點)


                     我測試出來的就是這個結果, 最大高度和最大寬度應該就在 這個值附近。

          3,添加完報表後,接着就可以向報表中添加控件了。一種方式是在報表空白處, 單擊鼠標右鍵,選擇 插入,     

           這時就可以向其中插入控件了;另一種方式是:快捷鍵(ctrl+Alt+x)打開工具箱,也可以,在工具箱中直接拖控件到報表上。

  

         4,帶我們添加好數據後,就可以添加數據源了。

          關於添加數據源,我知道的有2中方式。

              1,在報表所在的工程下創建一個類,並採用泛型的方式作爲報表數據源,這個方法我還不太熟悉,大家可以去官方文檔看看,這個是鏈接

              2,新建數據集。這種方法,添加的數據集可以不和報表在同一個工程下,因爲在向報表上綁定數據的時候,只需要保證報表與數據集在同一個工程下即可,報表可以在其他工程中設計好後,在以 “添加現有項”的方法添加到報表所在的工程進行數據綁定。

         這兒,我可能描述的不太清楚。沒關係,自己親自搗鼓下就明白了。繼續往下走,

           接着就添加數據源,我這裏用第二種方式添加數據源,這裏,數據集的名字隨意,我還是使用默認的吧:


          5,向數據集中添加數據集的格式。


     當然,也可以點擊上面圖中的 “工具箱


   設計好數據集後,我們就可以向報表中添加數據了。對了。 這裏在設計數據集中的列的時候,增加新列的快捷鍵是:ctrl+L。(不分大小寫)。

         6,添加報表數據。

            首先,將窗口切換至 報表窗口:


       接着,找到:VS的   菜單->視圖->報表數據 。打開報表數據的快捷方式是:Ctrl+Alt+D(不分大小寫)。Vs會彈出報表數據窗口:


       然後,選擇    報表數據  窗口的  新建->數據集…


        (這裏,其他的兩種方式,我不經常使用,參數我不太會,圖像,是添加本地的一張圖像)

        在彈出的窗口中,做如下操作。


      7,點解確定後,在報表數據窗口中就有了我們剛剛添加的數據源了。


   接着,我們把數據源中的項拖到 報表上指定的位置即可。


    報表的工作算是做完了。

————————————查看報表和向報表中添加數據源。

              我這裏的做法是動態向報表中添加數據。

     1, 回到winform設計窗口,打開工具箱,在  報表分類下找到 名爲 ReportViewer的控件,將其添加到winform窗體上,調整好其大小。


      2,雙擊winform窗體  或者  按 F7 。進入到後臺代碼,添加下列代碼:

       添加下列的名稱空間:

  1. using Microsoft.Reporting.WinForms;  
using Microsoft.Reporting.WinForms;
       再添加下列代碼

  1. private void Form1_Load(object sender, EventArgs e)  
  2.         {  
  3.             ///—-指定報表外部數據源  
  4.             DataTable table = new DataTable();  
  5.             table.Columns.Add(”工具”typeof(string));  
  6.             table.Columns.Add(”語言”typeof(string));  
  7.             table.Rows.Add(”VS2010”“C# 4.0”);  
  8.   
  9.             ///—添加數據源  
  10.             ReportDataSource rds = new ReportDataSource();  
  11.             rds.Name = ”DataSet1”;  
  12.             rds.Value = table;  
  13.             ///—向報表綁定數據源  
  14.             this.reportViewer1.LocalReport.DataSources.Add(rds);  
  15.             ///—向報表查看器指定顯示的報表  
  16.             this.reportViewer1.LocalReport.ReportPath = @“..\..\Report1.rdlc”;  
  17.             this.reportViewer1.RefreshReport();  
  18.         }  
private void Form1_Load(object sender, EventArgs e)
        {
            ///----指定報表外部數據源
            DataTable table = new DataTable();
            table.Columns.Add("工具", typeof(string));
            table.Columns.Add("語言", typeof(string));
            table.Rows.Add("VS2010", "C# 4.0");

            ///---添加數據源
            ReportDataSource rds = new ReportDataSource();
            rds.Name = "DataSet1";
            rds.Value = table;
            ///---向報表綁定數據源
            this.reportViewer1.LocalReport.DataSources.Add(rds);
            ///---向報表查看器指定顯示的報表
            this.reportViewer1.LocalReport.ReportPath = @"..\..\Report1.rdlc";
            this.reportViewer1.RefreshReport();
        }

         這裏,請注意:
 rds.Name = “DataSet1”;  這裏的DataSet1是來自  下圖所示的名稱。


      3,運行程序(Ctrl + F5)看看:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章