0

我是新来的Windows桌面应用程序开发。如何动态地将数据源添加到本地rdlc报告中?

我有一个包含报表查看器控件的窗体。一个包含报告设计的.rdlc文件。

我的问题是,我想动态地绑定报表的数据源。

代码

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 System.Data; 
using System.Data.OleDb; 


namespace WindowsFormsApplication3{ 

    public partial class Form1 : Form{ 

     OleDbConnection cn; 
     OleDbCommand cmd; 
     OleDbDataAdapter da; 
     DataSet ds; 

     public Form1(){ 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e){ 
      cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Bill\\dbBill.accdb"); 
      string query = "Select * from BillMaster where BillNo=1"; 
      cn.Open(); 
      cmd = new OleDbCommand(query, cn); 
      da = new OleDbDataAdapter(cmd); 
      ds = new DataSet(); 
      da.Fill(ds);    
      cn.Close();   
     } 
    } 
} 

我想将ds绑定到我的报告。

报告文件还包含显示数据的表格和一些文本框。

如何做。以及如何将数据绑定到位于.rdlc文件中的文本框?我搜索了很多,但只找到了ASP.net的解决方案。

如何在桌面应用程序中实现此目的。

请帮忙。

在此先感谢。

回答

0

请参阅本article

void LocalReport_SubreportProcessing(
    object sender, 
    Microsoft.Reporting.WebForms.SubreportProcessingEventArgs e) 
{ 
    // get empID from the parameters 
    int iEmpID = Convert.ToInt32(e.Parameters[0].Values[0]); 

    // remove all previously attached Datasources, since we want to attach a 
    // new one 
    e.DataSources.Clear(); 

    // Retrieve employeeFamily list based on EmpID 
    var employeeFamily = CpReportCustomData.Data.CustomDS.GetAllEmployeeFamily() 
         .FindAll(element => element.ID == iEmpID); 

    // add retrieved dataset or you can call it list to data source 
    e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource() 
    { 
     Name = "DSEmployeeFamily", 
     Value = employeeFamily 

    }); 
} 
相关问题