C# rdlc 报表学习总结
生活随笔
收集整理的這篇文章主要介紹了
C# rdlc 报表学习总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C# 創建報表過程詳解
http://www.jb51.net/article/68481.htm本文給大家介紹的是使用vs2012 c#創建報表的全部過程的記錄,十分的詳細,有需要的小伙伴可以參考下。
..1、新建windows窗體,項目-->添加新項-->Visual C#項-->Windows Form-->windows窗體。
2、窗體中加入button按鈕和報表控件。
3、新建報表,項目-->添加新項-->reporting-->報表,生成.rdlc文件。
4、在.rdlc上插入表格-->新建數據源-->數據庫-->數據集-->新建連接,步驟如下:
5、這里輸入數據庫連接的服務器名,登錄數據庫的用戶名和密碼,選擇數據庫名稱。
6、選擇需要用的表。
7、名稱可以自己寫,本人沒改,數據源為自己選擇的數據庫名稱,可用數據集為表名。
8、.rdlc界面在表格的第一行輸入字段名,第二行點擊每列右上角的小圖標選擇該列要顯示的字段名。
9、回到Form窗體點擊報表右上角的小三角,選擇剛剛創建的報表Report1.rdlc,數據源默認的就可以,本人在這里沒有修改數據源名稱還是DataSet1.
10、后臺代碼
public Form1()
{
InitializeComponent();
this.reportViewer1.Load -= new System.EventHandler(this.reportViewer1_Load);
}
private void button1_Click(object sender, EventArgs e)//button點擊事件
{
reportViewer1_Load(sender, e);
}
private void Form1_Load(object sender, EventArgs e)
{
this.reportViewer1.Load -= new System.EventHandler(this.reportViewer1_Load);
}
private void reportViewer1_Load(object sender, EventArgs e)
{
DataTable table = helps.GetDataTable("select ID,UserID,OID from User_Org where 1=1");
this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", table));
this.reportViewer1.RefreshReport();
}
運行程序加載:
點擊button
這里寫的是點擊button后才加載數據。
========
C#中使用RDLC報表(1)
http://blog.csdn.net/panting8/article/details/73205401 建立數據源
啟動VS2005新建一個窗體項目,命名為TestProj
在左邊的窗體內選擇“添加新數據源”或在菜單上操作“添加新數據源”:
選擇后出現對話窗體,選擇“數據庫”,進入“下一步”:
本數據源以SqlServer2000所提供的Northwind數據庫為例,因此在數據庫內選擇驅動程序為SqlServer,具體操作視所用數據庫而定(如果連接為Oracle,建議用Oracle所提供的ODP for .NET,地址:http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html)。
選擇數據源后,指定數據庫文件,并進行測試,如果連接不通,請檢查你的軟件設置。
進行下一步,至顯示出庫文件內的表及視圖,然后打開表,并選擇其中的Employees,選擇完成。
在數據源窗口中顯示出所選擇表及表內的字段,以備使用。
同時在資源管理器中,也可以看到新增加的數據文件。
2 ?報表瀏覽器
在新建的窗體內,放入報表瀏覽控件:
此報表瀏覽控件集成了報表查看及打印預覽的功能,可直接輸出至打印機,也可直接輸出至Excel文件或PDF文件,對于喜歡看Excel表格的客戶來說,這個報表控件非常不錯。關于此報表的來源及臺前幕后的各種說法,請自己查詢相關的網站。
3 ?建立報表文件
選中報表瀏覽器控件后,在控件的右上角會出現一個小三角,點擊后,出現一個菜單,選擇“設計新報表”或在解決方案資源管理器中添加一個新的報表文件:
雙擊“報表項”內的“表”,則設計空白表內生成一個表格,我們可以在表格內添加數據項。
此報表的設計方式類似于MS以前的VB下報表設計環境。在報表設計器中,我將一份報表分為五個部分,從上至下為:報表標題區、列標題區、數據顯示區、合計及頁腳。如果將報表的設計形式顯示出頁眉及頁腳,報表的形式會看得更清楚些:
選擇頁眉及頁腳:
顯示結果:
現在開始設計報表:
在“頁眉”區內放入一個文本框,將內容更改為“測試報表”,居中,字體放大加粗:
從數據源窗口中選擇合適的列,用鼠標拖到報表內的“詳細信息”表格上,數據會自動填入:
將設計的報表保存后,返回報表瀏覽窗口,并為報表瀏覽器選擇我們設計的報表:
選中報表文件后,菜單也有所改變:
再為此報表文件指定數據源,選擇數據源:
確定,保存文件并運行測試文件。
4 ? 預覽
報表生成后預覽如下:
是不是很簡單?我們也可以對這個簡單的報表進行美化,當然,我加上美化的一些功能后,可能效果更差,但此處只是為了演示用法。
? ? ? ? ? 為數據加表格。
在報表設計器中,選擇需要加表格框的區域
然后在工具欄中選擇邊框工具
加什么樣的框線根據需要,此處我選擇“所有框線”。
看上去比原來的灰線能稍黑一些,在預覽時就能看出來了。
? ? ? ? ? 加打印時間顯示
加入一個顯示打印時間的文本框,在上面按右鍵,選屬性:
在“文件框屬性”內,選擇“值”后面的表達式生成:
在表達式中選擇時間:
不要忘記表達式的前面一定要有一個“=”,如果沒有,手工加上一個。為了更符合我們的習慣,前面可以加個說明,如打印時間等,表達式的寫法就要稍做改變:還是以“=”開頭,后面加上“打印時間:”,再以“&”連接生成的Now函數即可得到我們想要的樣子。
? ? ? ? ? 為行加序號
為了演示,我將序號列加在了表格了最后列
加入一個新的列:
在顯示序號的列中輸入相關的值:
在此表達式的后面是Nothing,不是null,不要搞錯。
三項功能已經完成,預覽:
比原來漂亮嗎?至少實用了一些。
使用RDLC報表(二)--使用自定義數據集
1 新建窗體
2 建立數據源
3 建立報表
新的數據報表已經生成,下面開始對數據源進行設置。
4 對報表自動生成的數據源進行設置
選擇工具欄 à 報表 à 數據源,選中所要修改的數據源后,用“重命名”對其進行修改,如myds。
修改完成后,確定退出此窗口。
選中報表設計器內的表格,顯示屬性。將表格的數據集名稱更改為上面修改的名稱。
如果一個報表文件內只有一個數據源,則表格內的數據值可直接寫為“=Fields!字段.Value”的格式,如果包含多個數據源,則要對此字段的取值進行指定,如“=(Fields!字段.value,“數據集名稱””。
5 手動生成數據源
手動生成的數據集內必須包含報表文件內設計的字段名稱,否則會運行出現錯誤。
生成數據集:
? ? ? ? ? ?// 報表執行操作
? ? ? ? private void button1_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? //取得數據集
? ? ? ? ? ? string connstring = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True";
? ? ? ? ? ? System.Data.SqlClient.SqlConnection conn1 = new System.Data.SqlClient.SqlConnection(connstring);
? ? ? ? ? ? System.Data.SqlClient.SqlCommand command1 = new System.Data.SqlClient.SqlCommand("select * from customers", conn1);
? ? ? ? ? ? System.Data.SqlClient.SqlDataAdapter ada1 = new System.Data.SqlClient.SqlDataAdapter(command1);
? ? ? ? ? ? DataSet c_ds = new DataSet();
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? conn1.Open();
? ? ? ? ? ? ? ? ada1.Fill(c_ds);
? ? ? ? ? ? }
? ? ? ? ? ? finally
? ? ? ? ? ? {
? ? ? ? ? ? ? ? conn1.Close();
? ? ? ? ? ? ? ? command1.Dispose();
? ? ? ? ? ? ? ? conn1.Dispose();
? ? ? ? ? ? }
? ? ? ? ? ? ?//為報表瀏覽器指定報表文件
? ? ? ? ? ? this.reportViewer1.LocalReport.ReportEmbeddedResource = "report.Report1.rdlc";
? ? ? ? ? ? //指定數據集,數據集名稱后為表,不是DataSet類型的數據集
? ? ? ? ? ? this.reportViewer1.LocalReport.DataSources.Clear();
? ? ? ? ? ? this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("myds", c_ds.Tables[0]));
? ? ? ? ? ? //顯示報表
? ? ? ? ? ? this.reportViewer1.RefreshReport();
? ? ? ? }
運行后的數據顯示:
使用RDLC報表(三)--向RDLC報表傳入參數
在使用報表向客戶展示結果數據時,實時的在報表中顯示某些特定的數據是必需的,如:顯示的部門、打印的日期等。本文只簡單的演示向報表內傳入一個字符值。如有其它問題,歡迎討論。
1、新建一個工程TestReport,一個Form窗體,放入一個TextBox、一個Button按鈕,再放入一個ReportViewer控件。
2、在ReportViewer上選擇新建一個報表
3、在打開的報表設計器中,選擇工具欄的“報表”中的“報表參數”,新加一個參數,名稱為content,數據類型為string,確定。
4、 在報表設計器的頁面上放入一個文本框,在文本框上按鼠標右鍵->屬性,在“文本框屬性”窗口中,選擇“常規”選項卡內下部的“值”后面的“編輯表達 式”按鈕(就是那個Fx),在此窗口內,左下框內選擇參數,在右下框將會出現在上一步中設置的參數,雙擊此參數,在上面的框內將出現所需要的表達 式:=Parameters!content.Value。保存此報表。報表默認名稱為Report1.rdlc。
5、在Form窗體內雙擊按鈕,編寫如下代碼:
? ? ? ? ? ? this.reportViewer1.LocalReport.ReportEmbeddedResource = "TestReport.Report1.rdlc";
? ? ? ? ? ? ReportParameter rp = new ReportParameter("content", this.textBox1.Text);
? ? ? ? ? ? this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
? ? ? ? ? ? this.reportViewer1.RefreshReport();
6、運行工程,在文本輸入框內輸入數據,按下按鈕,數據是不是已經傳入報表了?
//報表參數
ReportParameter[] RP = new ReportParameter[8];
//報表參數名稱
string[] RptParmsName = new string[8] { "p_BillNo", "p_compForshort", "p_LuptDate", "p_compFullname", "p_RecoverSigner", "p_deptname", "p_Issuer", "p_DeliveryDate" };
//報表參數值
object[] RptParmsValue = new object[8] { dt.Rows[0]["BillNo"].ToString(), dt.Rows[0]["compForshort"].ToString(), dt.Rows[0]["LuptDate"], dt.Rows[0]["compFullname"].ToString(), dt.Rows[0]["RecoverSigner"].ToString(), dt.Rows[0]["deptname"].ToString().Trim(), UserName, dt.Rows[0]["DeliveryDate"] };
//為報表傳遞參數
for (int i = 0; i < RP.Length; i++)
{
? RP[i] = new ReportParameter(RptParmsName[i], RptParmsValue[i].ToString());
? this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { RP[i] });
}
使用RDLC報表(四)--鉆取式報表
本文內以MSServer自帶Northwind庫文件內的Customers及Orders這兩個表為例,建立兩個報表文件,在查詢得出 Customers的表數據后,點擊此表內的CustomerID數據,報表將轉入至下一個報表,并顯示與之相關的Orders的數據,即VS中所謂的鉆 取式報表。
1、打開一個工程,并新建一個From,放入一個Button及一個ReportViewer控件。
2、在工程內新建一個數據源,連接到Northwind庫文件,顯示Customers及Orders這兩個表
3、新建一個報表文件,并以表格的形式來顯示數據,將Customers表內的CustomerID、CompanyName及Address三個字段放入,形成一份有表頭及數據的簡單報表,并將此報表保存命名為customerReport
4、再建一個報表文件,與customerReport相同,也以表格的形式來顯示報表,將Orders內的OrderID、CustomerID、ShipName及OrderDate四個字段放入表格內,報表保存為orderReport
5、orderReport的數據源根據主報表customerReport的數據來確定數據源的數據,查看表格的數據集名稱,我的顯示為NorthwindDataSet_Orders,也可以自己另建一個,具體方法見我的《RDLC報表(二)》
6、 再打開customerReport報表,將CustomerID設置成為可點擊的索引字段,以便轉入下一個報表。選擇CustomerID字段,按鼠標 右鍵,在”文本框屬性“窗口中,選擇”導航“選項卡,在下面的”超鏈接“中選擇”跳至報表“,在報表名稱中選擇”orderReport“,再按下后面 的”參數...“按鈕,輸入一個參數名稱,如customerid,參數值選擇=Fields!CustomerID.Value。為了與其它數據相區 分,可以將此列數據根據自己的習慣改變顏色或加下劃線
7、在orderReport中,設置一個報表參數,與CurtomerReprot中的名稱相同,以接收父表中傳入的參數
8、 新建兩個取得數據的方法,一個從Customers中取得數據集,另一個從Orders中取得數據集,且帶參數。此兩個方法可以自己編寫類庫來實現,也可 以在VS的數據集內添加。為了演示方便,我直接使用了Customers的GetData(),并編寫了一個Orders的 GetDataByCustomerID(@cid)的方法。
9、在From的Button中編寫如下代碼:
? ? ? ? private void button2_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? NorthwindDataSet.CustomersDataTable dt1 = new NorthwindDataSetTableAdapters.CustomersTableAdapter().GetData();
? ? ? ? ? ? this.reportViewer1.LocalReport.ReportEmbeddedResource = "TestReport.customerReport.rdlc";
? ? ? ? ? ? this.reportViewer1.LocalReport.DataSources.Clear();
? ? ? ? ? ? this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("NorthwindDataSet_Customers", dt1));
? ? ? ? ? ? this.reportViewer1.RefreshReport();
? ? ? ? }
10、使用報表的Drillthrough事件,當選擇了鉆取項時會發生此事件,給下一個報表取值,代碼如下:
? ? ? ? private void reportViewer1_Drillthrough(object sender, DrillthroughEventArgs e)
? ? ? ? {
? ? ? ? ? ? LocalReport lp = (LocalReport)e.Report;
? ? ? ? ? ? string customerid = lp.GetParameters()["customerid"].Values[0].Trim();
? ? ? ? ? ? lp.DataSources.Clear();
? ? ? ? ? ? lp.DataSources.Add(new ReportDataSource("NorthwindDataSet_Orders",
? ? ? ? ? ? ? ? new NorthwindDataSetTableAdapters.OrdersTableAdapter().GetDataByCustomerID(customerid)));
? ? ? ? }
運到結果:
運行第一份報表:
鉆取后運行第二份報表:
========
?使用RDLC報表(二)--使用自定義數據集
http://blog.csdn.net/panting8/article/details/7320555新建窗體
<!--[if !supportLists]-->2<!--[endif]-->建立數據源
3<!--[endif]-->建立報表
新的數據報表已經生成,下面開始對數據源進行設置。
<!--[if !supportLists]-->4<!--[endif]-->對報表自動生成的數據源進行設置
選擇工具欄 à 報表 à 數據源,選中所要修改的數據源后,用“重命名”對其進行修改,如myds。
修改完成后,確定退出此窗口。
選中報表設計器內的表格,顯示屬性。將表格的數據集名稱更改為上面修改的名稱。
如果一個報表文件內只有一個數據源,則表格內的數據值可直接寫為“=Fields!字段.Value”的格式,如果包含多個數據源,則要對此字段的取值進行指定,如“=(Fields!字段.value,“數據集名稱””。
<!--[if !supportLists]-->5<!--[endif]-->手動生成數據源
手動生成的數據集內必須包含報表文件內設計的字段名稱,否則會運行出現錯誤。
生成數據集:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> ? ? ? /// <summary>
? ? ? ? /// 報表執行操作
? ? ? ? /// </summary>
? ? ? ? /// <param name="sender"></param>
? ? ? ? /// <param name="e"></param>
? ? ? ? private void button1_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? //取得數據集
? ? ? ? ? ? string connstring = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True";
? ? ? ? ? ? System.Data.SqlClient.SqlConnection conn1 = new System.Data.SqlClient.SqlConnection(connstring);
? ? ? ? ? ? System.Data.SqlClient.SqlCommand command1 = new System.Data.SqlClient.SqlCommand("select * from customers", conn1);
? ? ? ? ? ? System.Data.SqlClient.SqlDataAdapter ada1 = new System.Data.SqlClient.SqlDataAdapter(command1);
? ? ? ? ? ? DataSet c_ds = new DataSet();
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? conn1.Open();
? ? ? ? ? ? ? ? ada1.Fill(c_ds);
? ? ? ? ? ? }
? ? ? ? ? ? finally
? ? ? ? ? ? {
? ? ? ? ? ? ? ? conn1.Close();
? ? ? ? ? ? ? ? command1.Dispose();
? ? ? ? ? ? ? ? conn1.Dispose();
? ? ? ? ? ? }
? ? ? ? ? ? //為報表瀏覽器指定報表文件
? ? ? ? ? ? this.reportViewer1.LocalReport.ReportEmbeddedResource = "report.Report1.rdlc";
? ? ? ? ? ? //指定數據集,數據集名稱后為表,不是DataSet類型的數據集
? ? ? ? ? ? this.reportViewer1.LocalReport.DataSources.Clear();
? ? ? ? ? ? this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("myds", c_ds.Tables[0]));
? ? ? ? ? ? //顯示報表
? ? ? ? ? ? this.reportViewer1.RefreshReport();
? ? ? ? }
運行后的數據顯示:
========
使用RDLC報表(三)--向RDLC報表傳入參數
http://blog.csdn.net/panting8/article/details/7320559在使用報表向客戶展示結果數據時,實時的在報表中顯示某些特定的數據是必需的,如:顯示的部門、打印的日期等。本文只簡單的演示向報表內傳入一個字符值。如有其它問題,歡迎討論。
1、新建一個工程TestReport,一個Form窗體,放入一個TextBox、一個Button按鈕,再放入一個ReportViewer控件。
2、在ReportViewer上選擇新建一個報表
3、在打開的報表設計器中,選擇工具欄的“報表”中的“報表參數”,新加一個參數,名稱為content,數據類型為string,確定。
4、在報表設計器的頁面上放入一個文本框,在文本框上按鼠標右鍵->屬性,在“文本框屬性”窗口中,選擇“常規”選項卡內下部的“值”后面的“編輯表達式”按鈕(就是那個Fx),在此窗口內,左下框內選擇參數,在右下框將會出現在上一步中設置的參數,雙擊此參數,在上面的框內將出現所需要的表達式:=Parameters!content.Value。保存此報表。報表默認名稱為Report1.rdlc。
5、在Form窗體內雙擊按鈕,編寫如下代碼:
? ? ? ? ? ? this.reportViewer1.LocalReport.ReportEmbeddedResource = "TestReport.Report1.rdlc";
? ? ? ? ? ? ReportParameter rp = new ReportParameter("content", this.textBox1.Text);
? ? ? ? ? ? this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
? ? ? ? ? ? this.reportViewer1.RefreshReport();
6、運行工程,在文本輸入框內輸入數據,按下按鈕,數據是不是已經傳入報表了?
========
ReportViewer動態報表開發完整步驟
http://blog.csdn.net/waterxcfg304/article/details/45788639在朋友的邀請下,給他們公司開發一個簡單的公司門戶網站。本人都多年沒有寫ASP.NET C#代碼了。這幾年都在做數據庫和商務智能這塊。反正朋友說網站不難,就個簡單的展現網站,于是就答應了,找了一天到他們公司去聽具體的開發需求,聽了需求后,覺得難道不是很大,主要的難點在一個在線租賃平臺。朋友的公司是做檢測設備租賃的。于是就答應了。承諾在1個月內做好。主要是周末和晚上做。
所有的框架和頁面展示功能都還可以,很快就開發好了。但是當在開發打印報表的時候,遇到了就障礙,主要是自己以前做的大多是C/S的開發。B/S的做的不多,更沒有開發個B/S報表,而且該報表的數據源是動態的。
于是只能找度娘了,找了好多都沒有滿足我的要求的,大部分都是簡單的直接的從數據庫表里拉一個靜態表做為數據源。要不就是草草的寫點步驟,步驟還不是完整的,誤導特大。說誤導是我自己按照他們的說法做,調試都不成功,那個心情是想罵娘啊。天不負苦心人。終于搞定了。于是下定決心來寫一個完整的步驟。希望能給找這方面需求的朋友能直接按照我的步驟一步一步做下去就可以實現結果。
ReportViewer連接靜態的數據表就不說了,下面來寫下如何實現讓ReportViewer綁定動態的數據源:
一,創建一個Web窗體,命名為WebPrintOrder。 在工具箱里拉一個MicrosoftReportViewer控件到該Web窗體里
1,把MicrosoftReportViewer拉到頁面自動生成如下頁面代碼:
<rsweb:ReportViewer ID="ReportViewer1" runat="server">
</rsweb:ReportViewer>
2,查看頁面設計就會顯示一個報表控件如下:
二,為報表設置數據源
1,添加RDLC報表控件,名稱report.rdlc
2,返回到WebPrintOrder設計界面,點擊報表的右上角的>,選擇我剛才添加的Report.rdlc如下圖:
,3
3,雙擊選擇report.rdlc,這個時候顯示的是report.rdlc的設計頁面,點擊【添加新數據源】,這時候就會顯示如下的樣式,左邊多了一個DataSet1,右側在App_Code的目錄下面多了一個DataSet1.xsd的文件。
4,雙擊DataSet1.xsd文件,并且在該頁面上【右鍵】添加DataTable顯示如下圖:
5,我創建了一個名稱為PrintOrder的表,然后添加具體的表字段如下圖:
6,由于我的報表里需要兩個數據源,于是我再次添加數據源如下圖:
7,當我點擊【添加新數據源】的時候,系統自動又幫我創建了一個DataSet2.xsd 的文件在App_Code下面,如下圖:
8,再次雙擊DataSet2.xsd, 添加新的表如下圖:
9,添加一個表名稱為RentInfo的表如下:
10,回到report.rdlc設計界面就可以看到兩個數據源了,分別叫DataSet1 和 DataSet2
三,開始設計報表
1, 在report.rdlc設計頁面,把文本框,折線圖和表拖到報表頁面上
2,表里的數據直接從網站數據源里把相應的表字段拉到表的明細里就可以了。如下圖:
3,這里需要重點介紹的是如何在報表里添加參數,選擇【報表】----》【報表參數】 如下圖:
4, 我的參數設計如下:
5,上面是報表設計和數據源設計完成,下面來看代碼如何和此報表關聯起來。
四,報表數據源的綁定代碼
[csharp]
protected void Page_Load(object sender, EventArgs e) ?
? ?{ ?
? ? ? ?if (!IsPostBack) ?
? ? ? ?{ ?
? ? ? ? ? ?if (!string.IsNullOrEmpty(Request.QueryString["ID"])) ?
? ? ? ? ? ?{ ?
? ? ? ? ? ? ? ?strRentDateCode = Request.QueryString["ID"].ToString(); ?
? ? ? ? ? ?} ?
??
? ? ? ? ? ?BindData(); ?
? ? ? ? ? ?BindPrintOrder(); ?
??
??
? ? ? ? ? ?string CompanyName=Session["Member"].ToString(); ?
? ? ? ? ? ?QueryParam queryparam = new QueryParam(); ?
??
? ? ? ? ? ?if (!string.IsNullOrEmpty(CompanyName)) ?
? ? ? ? ? ? ? ?queryparam.Add("CompanyName", QueryParam.RELATION.EQ, "'" + CompanyName + "'"); ?
??
? ? ? ? ? ?memberModel = member.GetMemberModel(CompanyName); ? ? ? ? ? ?
??
??
? ? ? ? ? ?DataTable dtPrintOrder = GetPrintOrderData(); ?
? ? ? ? ? ?DataTable dtRentInfo = GetRentInfoData(); ?
??
? ? ? ? ? ?ReportViewer1.LocalReport.ReportPath = "Report.rdlc"; ?
? ? ? ? ? ?Microsoft.Reporting.WebForms.ReportDataSource rds = new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1_PrintOrder", dtPrintOrder); ?
? ? ? ? ? ?Microsoft.Reporting.WebForms.ReportDataSource rds2 = new Microsoft.Reporting.WebForms.ReportDataSource("DataSet2_RentInfo", dtRentInfo); ?
??
? ? ? ? ? ?//ReportParameter rptParaA = new ReportParameter("rptParaA", "申請日期"); ?
? ? ? ? ? ?//ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA }); ?
??
? ? ? ? ? ?//ReportParameter rptParaB = new ReportParameter("rptParaB", "公司名稱"); ?
? ? ? ? ? ?//ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaB }); ?
??
??
? ? ? ? ? ?ReportViewer1.LocalReport.DataSources.Clear(); ?
? ? ? ? ? ?List<ReportParameter> para = new List<ReportParameter>(); ?
? ? ? ? ? ?//這里是添加兩個字段 ?
? ? ? ? ? ?para.Add(new ReportParameter("RentDate", strRentDateCode)); ?
? ? ? ? ? ?para.Add(new ReportParameter("CompanyName", memberModel.CompanyName)); ?
??
? ? ? ? ? ?para.Add(new ReportParameter("Address", memberModel.Address)); ?
? ? ? ? ? ?para.Add(new ReportParameter("Person", memberModel.Person)); ?
??
? ? ? ? ? ?para.Add(new ReportParameter("Phone", memberModel.Phone)); ?
? ? ? ? ? ?para.Add(new ReportParameter("Email", memberModel.Email)); ?
??
? ? ? ? ? ?para.Add(new ReportParameter("Count", dtPrintOrder.Rows.Count.ToString())); ?
??
??
? ? ? ? ? ?this.ReportViewer1.LocalReport.SetParameters(para); ?
? ? ? ? ? ?ReportViewer1.LocalReport.DataSources.Add(rds); ?
? ? ? ? ? ?ReportViewer1.LocalReport.DataSources.Add(rds2); ?
??
? ? ? ? ? ?this.ReportViewer1.ZoomMode = Microsoft.Reporting.WebForms.ZoomMode.Percent; ?
? ? ? ? ? ?this.ReportViewer1.ZoomPercent = 100; ?
??
? ? ? ? ? ?ReportViewer1.LocalReport.Refresh(); ? ?
??
? ? ? ?} ?
? ?} ?
五, 運行程序查看報表如下:
導出成PDF如下:
六,至此ASP.Net C# 動態ReportViewer開發完成。如果您能一直看到這里,我相信您肯定能開發出此類報表。希望此文章能給您幫助。歡迎互相學習!我也是B/S報表開發的二把刀,呵呵!
========
總結
以上是生活随笔為你收集整理的C# rdlc 报表学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win32 鼠标绘图代码研究
- 下一篇: C# 泛型编程学习总结