您好,
这边实现的思路是:
1.将报表A的信息通过参数的方式传给报表B
2.报表B在加载数据时,获取收到的参数
- protected void WebViewer1_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
- {
- string connStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("/Data/NWind_CHS.mdb"));
- Access dl = new Access(connStr);
- if (args.DataSourceName == "SubDetail" && args.DataSetName == "SubDetailSet1")
- {
- /**
- * 可以做任何在子报表加载数据前的操作
- * */
- String Id = args.Report.Parameters[0].CurrentValue.ToString();
- string productSql = string.Format("select 产品.产品名称, 产品.单位数量, 订单明细.单价, 订单明细.数量, 订单明细.折扣 from 订单明细 inner join 产品 on 订单明细.产品ID = 产品.产品ID where 订单ID = {0}", Id);
- args.Data = dl.ExecuteDataset(productSql);
- }
- else
- {
- string productSql = string.Format("select 订单.* from 订单");
- args.Data = dl.ExecuteDataset(productSql);
- }
- }
复制代码
希望能够帮助到您。 |