如何处理一个报表多个数据源?
下面的程序是处理单个数据源,如果多个数据源如何处理?private void Form1_Load(object sender, EventArgs e)
{
GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("ListPageReport.rdlx"));
GrapeCity.ActiveReports.Document.PageDocument document = new GrapeCity.ActiveReports.Document.PageDocument(report);
document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(document_LocateDataSource);
viewer1.LoadDocument(document);
}
void document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
if (args.DataSourceName == "ListDataSource" && args.DataSetName == "ListDataSet")
{
args.Data = GetData();
}
}
private List<Product> GetData()
{
List<Product> list = new List<Product>();
for (int i = 1; i <= 20; i++)
{
list.Add(new Product(){ID=i,Name="产品"+i.ToString(),Price =i * 10f,Stock=i * 20});
}
return list;
} 您好,
RDL报表可以绑定多个数据源,每个数据源下可以绑定多个数据集。
通过DataSourceName 和DataSetName 来确定唯一的一个数据集。 void document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
if (args.DataSourceName == "ListDataSource1" && args.DataSetName == "ListDataSet1")
{
args.Data = GetData1();
}
if (args.DataSourceName == "ListDataSource2" && args.DataSetName == "ListDataSet2")
{
args.Data = GetData2();
}
}
private List<Product> GetData1()
{
List<Product> list = new List<Product>();
for (int i = 1; i <= 20; i++)
{
list.Add(new Product(){ID=i,Name="产品"+i.ToString(),Price =i * 10f,Stock=i * 20});
}
return list;
}
private List<Cum> GetData2()
{
List<Cum> list = new List<Cum>();
for (int i = 1; i <= 20; i++)
{
list.Add(new Cum(){ID=i,Name="dd"+i.ToString(),Price =i * 10f,Stock=i * 20});
}
return list;
} :hjyzw:
您好,
我看了一下,就是这个思路,目前能够正常运行吗? 如下图的页面报表,
虽然可以定义两个数据源和数据集,
但在报表中引用字段时,只能引用同一数据集下的字段,
比如页面可以设置数据集,table也可设置数据集,
页面textbox设置=Fields!bmmc.Value,
是否可以Fields前加上数据集名称来区分该字段来自不同的数据集?
如下的形式
textbox1.value=dwxxDataSet.Fields!bmmc.Value,
textbox2.value=gzxxDataSet.Fields!grbm.Value,
您好,
从您的截图中看到您使用的页面报表,支持多个数据源的报表是RDL报表。
页面报表和RDL的报表区别主要在于页面报表使用打印的应用场景。
使用的场景可以参考:
http://gcdn.gcpowertools.com.cn/showtopic-17065.html 您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?
如果没有解决,欢迎跟贴接续讨论,如果已经解决请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页:
[1]