我是Windows桌面应用程序开发的新手。
我有一个包含报表查看器控件的表单。一个包含报告设计的.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 :(得分: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
});
}