說到報表,大家肯定會想到和VS結合的比較緊密的是水晶報表了。水晶報表做出來的東西很漂亮脯爪。接著可能就是fastreport,它也有十多年的報表經(jīng)驗了三幻,和VS銜接的也不錯就漾。還有很多其他的報表工具,這里就不枚舉了念搬。說來說去抑堡,還是沒得微軟原生的工具好額,畢竟是自家的東西朗徊,自家的東西能和VS做到無縫連接首妖。微軟就是強大......
我使用的是VS2010開發(fā)工具。開發(fā)語言是 C#爷恳。
------------------------------------先看看結果
報表是這樣設計的:
看看結果:
------------------------------------步驟(中間有些步驟可以交換)
1有缆, 當然是新建一個winform窗體應用程序。
2, 在添加新項中妒貌,找到左邊模版中的Reporting,在右邊找到報表通危,報表命名隨意。
添加報表完成后灌曙,界面如下圖:
可以在報表的空白處菊碟,點擊鼠標右鍵,在彈出的菜單中選擇視圖->標尺在刺,方便我們更好的設計報表的大小逆害。
注意:通常,RDLC報表蚣驼,若將其打印到A4的紙上:
報表最大寬度為 (上面的刻度:到16 后面的點)
報表的最大高度為(上面的刻度:到25后面的點)
我測試出來的就是這個結果魄幕, 最大高度和最大寬度應該就在 這個值附近。
3颖杏,添加完報表后纯陨,接著就可以向報表中添加控件了。一種方式是在報表空白處留储,單擊鼠標右鍵翼抠,選擇 插入墨坚,
這時就可以向其中插入控件了轰胁;另一種方式是:快捷鍵(ctrl+Alt+x)打開工具箱,也可以云头,在工具箱中直接拖控件到報表上丐膝。
4量愧,帶我們添加好數(shù)據(jù)后,就可以添加數(shù)據(jù)源了帅矗。
關于添加數(shù)據(jù)源偎肃,我知道的有2中方式。
1损晤,在報表所在的工程下創(chuàng)建一個類软棺,并采用泛型的方式作為報表數(shù)據(jù)源红竭,這個方法我還不太熟悉尤勋,大家可以去官方文檔看看,這個是鏈接
2茵宪,新建數(shù)據(jù)集最冰。這種方法,添加的數(shù)據(jù)集可以不和報表在同一個工程下稀火,因為在向報表上綁定數(shù)據(jù)的時候暖哨,只需要保證報表與數(shù)據(jù)集在同一個工程下即可,報表可以在其他工程中設計好后凰狞,在以 “添加現(xiàn)有項”的方法添加到報表所在的工程進行數(shù)據(jù)綁定篇裁。
這兒沛慢,我可能描述的不太清楚。沒關系达布,自己親自搗鼓下就明白了团甲。繼續(xù)往下走,
接著就添加數(shù)據(jù)源黍聂,我這里用第二種方式添加數(shù)據(jù)源躺苦,這里,數(shù)據(jù)集的名字隨意产还,我還是使用默認的吧:
5匹厘,向數(shù)據(jù)集中添加數(shù)據(jù)集的格式。
當然脐区,也可以點擊上面圖中的 “工具箱”
設計好數(shù)據(jù)集后愈诚,我們就可以向報表中添加數(shù)據(jù)了。對了牛隅。 這里在設計數(shù)據(jù)集中的列的時候扰路,增加新列的快捷鍵是:ctrl+L。(不分大小寫)倔叼。
6汗唱,添加報表數(shù)據(jù)。
首先丈攒,將窗口切換至 報表窗口:
接著哩罪,找到:VS的菜單->視圖->報表數(shù)據(jù)。打開報表數(shù)據(jù)的快捷方式是:Ctrl+Alt+D(不分大小寫)巡验。Vs會彈出報表數(shù)據(jù)窗口:
然后际插,選擇報表數(shù)據(jù)窗口的新建->數(shù)據(jù)集...
(這里,其他的兩種方式显设,我不經(jīng)常使用框弛,參數(shù)我不太會,圖像捕捂,是添加本地的一張圖像)
在彈出的窗口中瑟枫,做如下操作。
7指攒,點解確定后慷妙,在報表數(shù)據(jù)窗口中就有了我們剛剛添加的數(shù)據(jù)源了。
接著允悦,我們把數(shù)據(jù)源中的項拖到 報表上指定的位置即可膝擂。
報表的工作算是做完了。
------------------------------------查看報表和向報表中添加數(shù)據(jù)源。
我這里的做法是動態(tài)向報表中添加數(shù)據(jù)架馋。
1狞山, 回到winform設計窗口,打開工具箱叉寂,在 ?報表分類下找到 名為 ReportViewer的控件铣墨,將其添加到winform窗體上,調(diào)整好其大小办绝。
2伊约,雙擊winform窗體 ?或者 ?按 F7 。進入到后臺代碼孕蝉,添加下列代碼:
添加下列的名稱空間:
usingMicrosoft.Reporting.WinForms;
再添加下列代碼
privatevoidForm1_Load(object sender,?EventArgs?e)
{
///----指定報表外部數(shù)據(jù)源
DataTable?table?=new DataTable();
table.Columns.Add("工具",typeof(string));
table.Columns.Add("語言",typeof(string));
table.Rows.Add("VS2010","C#?4.0");
///---添加數(shù)據(jù)源
ReportDataSource?rds?=new ReportDataSource();
rds.Name?="DataSet1";
rds.Value?=?table;
///---向報表綁定數(shù)據(jù)源
this.reportViewer1.LocalReport.DataSources.Add(rds);
///---向報表查看器指定顯示的報表
this.reportViewer1.LocalReport.ReportPath?=?@"..\..\Report1.rdlc";
this.reportViewer1.RefreshReport();
}
這里屡律,請注意:
rds.Name = "DataSet1";這里的DataSet1是來自 ?下圖所示的名稱。
3降淮,運行程序(Ctrl + F5)看看: