Winform实现带参数报表钻取——子报表为动态数据源
本帖最后由 Lenka.Guo 于 2016-3-24 12:11 编辑源码下载:
1. 功能介绍
报表钻取是本身可以在报表设计时通过拖拽和属性设置,不需要编写一行代码,就可以轻松实现。然而这些功能前提是主报表和子报表都是设计时数据源。
当子报表是运行时数据源要如何实现?
主要功能点:
[*]报表钻取
[*]子报表设计时数据源
[*]带参数的报表钻取
[*]WinForm
[*]在子窗口中弹出子报表
2.开发环境
Visual Studio 2012 +ActiveReports 10SP1+WinForm(如果不是此版本,可通过VS 中的工具-》转换为ActiveReports10 一键转化)
3.实现步骤
1. 创建主报表 RdlReport1.rdlx;
2.选中单元格;在属性窗口中,点击“属性对话框”,设置“导航”属性;
3.选择“跳转到URL”,设置跳转时传递的值字段(关键步骤,与常规报表设计不同,选择:跳转到URL, 在值中输入参数值)
http://gcdn.gcpowertools.com.cn/data/attachment/forum/201603/24/120701zk9099ygyx04j3xk.jpg
4. 在Form1 中添加Viewer,实现Viewer的HyperLink 事件
(选中Viewer,在属性窗口中,点击事件按钮),在该方法中添加以下代码
private void viewer1_HyperLink(object sender, GrapeCity.ActiveReports.Viewer.Win.HyperLinkEventArgs e)
{
string file_name = @"..\..\RdlReport2.rdlx";
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name));
GrapeCity.ActiveReports.Document.PageDocument pageDocument = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
pageDocument.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(getDataSource);
Class1 cs = new Class1();
cs.temp1 = e.HyperLink.ToString();
rpt.Report.ReportParameters.DefaultValue.Values.Add(cs.temp1);
Form2 fm = new Form2();
fm.viewer1.LoadDocument(pageDocument);
fm.Show();
}
页:
[1]