如何动态地将数据源添加到本地rdlc报告

本文关键字:添加 rdlc 报告 数据源 动态 何动态 | 更新日期: 2023-09-27 18:02:47

我是windows桌面应用程序开发的新手。

我有一个包含报表查看器控件的表单。一个.rdlc文件,其中包含报表的设计。

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

My Code:

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的解决方案。

如何在桌面应用程序中实现此功能。

请帮助。

如何动态地将数据源添加到本地rdlc报告

请参阅本文:

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
    });
}