请问这样绑定数据有什么问题?为何数据是空呢
private void button1_Click(object sender, EventArgs e){
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(@"PageReport1.rdlx"));
rpt.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(locatedata1);
GrapeCity.ActiveReports.Document.PageDocument rpdt = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
this.viewer1.LoadDocument(rpdt);
}
private void locatedata1(object cender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
if (args.DataSourceName == "DataSource1" && args.DataSetName == "DataSet1")
{
DataSet ds =DBHelperSQL.Query("select * from Hj_basicinfo");
args.Data = ds.Tables;
}
}
调试的时候发现方法 private void locatedata1并没有执行,在报表设计中预览也是没有数据。
您好!
您的意思是进行代码调试的时候 根本没有进入private void locatedata1(object cender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)这个函数是这样嘛?
如果是这样,这样肯定是会报错的,因为报表根本就没有绑定数据。您可以参考下面这段代码:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath(@"动态数据源.rdlx")));
rpt.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(locatedate);
this.WebViewer1.Report = rpt;
}
private void locatedate(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
if (args.DataSourceName == "DataSource1")
{
if (args.DataSetName == "DataSet1")
{
args.Data = returndata();
}
}
}
private DataTable returndata()
{
DataTable dt = new DataTable();
dt.Columns.Add("产品编号");
dt.Columns.Add("产品名称");
dt.Columns.Add("单价");
dt.Columns.Add("库存量");
dt.Rows.Add("A001", "苹果", 10, 300);
dt.Rows.Add("A002", "葡萄", 20, 200);
dt.Rows.Add("A003", "香蕉", 30, 400);
return dt;
}
}
KearneyKang 发表于 2018-1-10 09:20
您好!
您的意思是进行代码调试的时候 根本没有进入private void locatedata1(object cender, GrapeCity ...
我在winfrom程序里写的一段代码:请看下为什么还是没走locatedata1 这个方法
private void Form1_Load(object sender, EventArgs e)
{
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(@"PageReport1.rdlx"));
rpt.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(locatedata1);
GrapeCity.ActiveReports.Document.PageDocument rpdt = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
this.viewer1.LoadDocument(rpdt);
}
private void locatedata1(object cender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
if (args.DataSourceName == "DataSource1")
{
if (args.DataSetName == "DataSet1")
{
args.Data = GetData();
}
}
}
private DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Col1");
dt.Columns.Add("Col2");
dt.Columns.Add("Col3");
dt.Rows.Add(1, 1, 1);
dt.Rows.Add(2, 1, 1);
dt.Rows.Add(3, 1, 1);
dt.Rows.Add(4, 1, 1);
dt.Rows.Add(5, 1, 1);
dt.Rows.Add(6, 1, 1);
return dt;
} 您好!
您参考我附件的压缩文件,是一个Winform的动态绑定数据源的demo KearneyKang 发表于 2018-1-11 14:02
您好!
您参考我附件的压缩文件,是一个Winform的动态绑定数据源的demo
非常感谢,问题已经解决了 好的!祝您工作愉快
页:
[1]