国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

WinFormRDLCSubReportStepbystep

2019-11-14 16:10:05
字體:
供稿:網(wǎng)友

最近在做的一個(gè)PO管理系統(tǒng),因?yàn)橐玫接唵未蛴?沒有用水晶報(bào)表,直接使用VS2010的Reporting.參考了網(wǎng)上的一些文章,但因?yàn)檎业降臄?shù)據(jù)是用于WebForm的,適配到WinForm有點(diǎn)區(qū)別,竟然花了很久才搞通.所以現(xiàn)在做個(gè)Step By Step以記錄.

參考Jimmy.Yang的博文:

http://m.survivalescaperooms.com/yjmyzz/archive/2011/09/19/2180940.html

 

開發(fā)環(huán)境:      VS2010 C#

 

第一步,新建項(xiàng)目

 

 

2.在項(xiàng)目中新建數(shù)據(jù)集

  

3.在數(shù)據(jù)集DataSet按圖標(biāo)新建表T_DEPT,T_EMP.

  

4.在項(xiàng)目中新建報(bào)表rptDEPT

  

5.在報(bào)表rptDEPT.rdlc中新增一個(gè)Tablix表,選擇顯示DEPTNO,DEPTNAME.

 

6. 在Form1里新建一個(gè)ReportViewer1.

 

 

并填上如下代碼

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; using Microsoft.Reporting.WinForms; namespace WinFormSubReport2{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }         PRivate void Form1_Load(object sender, EventArgs e)        {            this.reportViewer1.LocalReport.ReportPath = @"../../rptDEPT.rdlc";            this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSetDEPT",GetDeptData()));            this.reportViewer1.RefreshReport();        }        private DataTable GetDeptData()        {            DataTable dt = new DataTable();            dt.Columns.Add("DEPTNO", typeof(string));            dt.Columns.Add("DEPTNAME", typeof(string));            dt.Rows.Add("01", "辦公室");            dt.Rows.Add("02", "技術(shù)部");            dt.Rows.Add("03", "銷售部");            dt.Rows.Add("04", "客服部");             return dt;        }    }}

  

然后運(yùn)行結(jié)果顯示如下:

 

 

以上完成了一個(gè)單報(bào)表的制作,下面演示子報(bào)表的添加.

 

7.在項(xiàng)目中新建一個(gè)rptEMP.rdlc.

 

 

在子報(bào)表中增加表和字段

 

 

在父報(bào)表中添加子報(bào)表控件

 

 

 

在子報(bào)表控件上點(diǎn)擊右鍵,選擇屬性,將rptEMP設(shè)置為子報(bào)表.

 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 using Microsoft.Reporting.WinForms;11 12 namespace WinFormSubReport213 {14     public partial class Form1 : Form15     {16         public Form1()17         {18             InitializeComponent();19         }20 21         private void Form1_Load(object sender, EventArgs e)22         {23             this.reportViewer1.LocalReport.ReportPath = @"../../rptDEPT.rdlc";24             this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSetDEPT",GetDeptData()));25 26             //定義子報(bào)表處理方法27             this.reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);28 29             this.reportViewer1.RefreshReport();30         }31         private void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)32         {33             e.DataSources.Add(new ReportDataSource("DataSetEMP", GetEmpData()));34         }35         private DataTable GetDeptData()36         {37             DataTable dt = new DataTable();38             dt.Columns.Add("DEPTNO", typeof(string));39             dt.Columns.Add("DEPTNAME", typeof(string));40             dt.Rows.Add("01", "辦公室");41             dt.Rows.Add("02", "技術(shù)部");42             dt.Rows.Add("03", "銷售部");43             dt.Rows.Add("04", "客服部");44 45             return dt;46         }47         private DataTable GetEmpData()48         {49             DataTable dt = new DataTable();50             dt.Columns.Add("EMPNO", typeof(string));51             dt.Columns.Add("EMPNAME", typeof(string));52             dt.Columns.Add("DEPTNO", typeof(string));53             dt.Rows.Add("001", "楊過", "01");54             dt.Rows.Add("002", "令狐沖", "02");55             dt.Rows.Add("003", "風(fēng)清揚(yáng)", "02");56             dt.Rows.Add("004", "郭靖", "03");57             dt.Rows.Add("005", "趙敏", "04");58             return dt;59         }60     }61 }
View Code

此時(shí)運(yùn)行程序,父報(bào)表和子報(bào)表都顯示完整的數(shù)據(jù).

 

 8.在父報(bào)表中增加一個(gè)參數(shù)DeptNo.

 

 

選中父報(bào)表的tablix,在屬性欄的Filter項(xiàng)里添加過濾參數(shù)

 

 

在Form1.cs代碼里動(dòng)態(tài)增加一個(gè)參數(shù).

 

 

在子報(bào)表控件中增加一個(gè)[DeptNo]=[@DeptNo],作為子報(bào)表的參數(shù)

 

 

在子報(bào)表設(shè)計(jì)窗口增加報(bào)表.

 

 

最終Form1.cs代碼:

  1 using System;  2   3 using System.Collections.Generic;  4   5 using System.ComponentModel;  6   7 using System.Data;  8   9 using System.Drawing; 10  11 using System.Linq; 12  13 using System.Text; 14  15 using System.Windows.Forms; 16  17   18  19 using Microsoft.Reporting.WinForms; 20  21   22  23 namespace WinFormSubReport2 24  25 { 26  27     public partial class Form1 : Form 28  29     { 30  31         public Form1() 32  33         { 34  35             InitializeComponent(); 36  37         } 38  39   40  41         private void Form1_Load(object sender, EventArgs e) 42  43         { 44  45             //指定父報(bào)表文件 46  47             this.reportViewer1.LocalReport.ReportPath = @"../../rptDEPT.rdlc"; 48  49             //給父報(bào)表傳參數(shù) 50  51             this.reportViewer1.LocalReport.SetParameters(new ReportParameter("DeptNo", "02")); 52  53             //給父報(bào)表傳數(shù)據(jù) 54  55             this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSetDEPT",GetDeptData())); 56  57   58  59             //定義子報(bào)表處理方法 60  61             this.reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing); 62  63   64  65             this.reportViewer1.RefreshReport(); 66  67         } 68  69         private void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) 70  71         { 72  73             e.DataSources.Add(new ReportDataSource("DataSetEMP", GetEmpData())); 74  75         } 76  77         private DataTable GetDeptData() 78  79         { 80  81             DataTable dt = new DataTable(); 82  83             dt.Columns.Add("DEPTNO", typeof(string)); 84  85             dt.Columns.Add("DEPTNAME", typeof(string)); 86  87             dt.Rows.Add("01", "辦公室"); 88  89             dt.Rows.Add("02", "技術(shù)部"); 90  91             dt.Rows.Add("03", "銷售部"); 92  93             dt.Rows.Add("04", "客服部"); 94  95   96  97             return dt; 98  99         }100 101         private DataTable GetEmpData()102 103         {104 105             DataTable dt = new DataTable();106 107             dt.Columns.Add("EMPNO", typeof(string));108 109             dt.Columns.Add("EMPNAME", typeof(string));110 111             dt.Columns.Add("DEPTNO", typeof(string));112 113             dt.Rows.Add("001", "楊過", "01");114 115             dt.Rows.Add("002", "令狐沖", "02");116 117             dt.Rows.Add("003", "風(fēng)清揚(yáng)", "02");118 119             dt.Rows.Add("004", "郭靖", "03");120 121             dt.Rows.Add("005", "趙敏", "04");122 123             return dt;124 125         }126 127     }128 129 }
View Code

運(yùn)行結(jié)果如下:

 

 再次感謝Jimmy.Yang的分享,此篇博文完全仿照他的博客,只是轉(zhuǎn)移到了WinForm,因?yàn)樽约涸谟玫臅r(shí)候走了一些彎路,希望記下來幫助記憶。

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 琼海市| 德钦县| 天镇县| 淮南市| 建平县| 永康市| 安徽省| 黔江区| 习水县| 德庆县| 萍乡市| 山东省| 若尔盖县| 临清市| 五大连池市| 梁山县| 葫芦岛市| 新和县| 孝昌县| 时尚| 湘阴县| 特克斯县| 启东市| 天峨县| 新巴尔虎右旗| 磐安县| 肥西县| 平湖市| 获嘉县| 连江县| 红安县| 沁阳市| 光泽县| 承德市| 河间市| 三台县| 永春县| 龙州县| 定南县| 阜康市| 乌拉特前旗|