← 返回所有博客文章

报表控件 ActiveReports 中页面报表动态绑定数据源实现方法博客中,我们介绍了可通过LocateDataSource来对【Dataset Provider】进行动态数据源绑定。在读者反馈中,有人询问,如果我有子报表,请问该如何动态绑定数据源呢?

答案是肯定的,我们可以在已有demo基础上,扩展出子报表动态绑定数据源的办法。且原理相同,只不过没有通过PageDocument的LocateDataSource,而是通过WebViewer1.LocateDataSource 事件来绑定数据源。

AR_Page_LoadDataSource

 GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(
new System.IO.
FileInfo(Server.MapPath("PageReport1.rdlx")));
            WebViewer1.LocateDataSource += WebViewer1_LocateDataSource;
            WebViewer1.Report = report1;


void WebViewer1_LocateDataSource(object sender, GrapeCity.ActiveReports.
LocateDataSourceEventArgs args)
        {
            if (args.DataSourceName == "DataSource2")
            {
                if (args.DataSetName == "DataSet2")
                {
                    args.Data = GetData2();
                }
            }
            if (args.DataSourceName == "DataSource1")
            {
                if (args.DataSetName == "DataSet1")
                {
                    args.Data = GetData();
                }
            }
        }

demo下载: