ActiveReports提供了WinForms/ASP.NET/WPF/Silverlight平台中使用的报表查看器控件,这些控件都内置了报表参数面板,用户可以通过参数面板来过滤报表数据。ActiveReports在为用户提供默认的参数面板的同时,还为用户提供了自定义参数面板的支持,用户可以根据需要实现任何布局的参数面板。之前我们在ASP.NET中实现了ActiveReports中的自定义参数面板,本文主要是实现WinForms中的自定义参数面板。
第一步:创建WinForms应用程序
第二步:创建ActiveReports 页面报表
第三步:在页面报表中添加参数
第四步:创建自定义参数窗体
第五步:在主窗体中添加以下代码
private void 设置参数ToolStripMenuItem_Click(object sender, EventArgs e)
{
// 调用参数设置对话框
Parameters param = new Parameters();
if (param.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("PageReport1.rdlx"));
report.Report.ReportParameters[0].DefaultValue.Values.Clear();
report.Report.ReportParameters[0].DefaultValue.Values.Add(param.Param1);
report.Report.ReportParameters[1].DefaultValue.Values.Clear();
report.Report.ReportParameters[1].DefaultValue.Values.Add(param.Param2);
report.Report.ReportParameters[2].DefaultValue.Values.Clear();
report.Report.ReportParameters[2].DefaultValue.Values.Add(param.Param3);
report.Report.ReportParameters[3].DefaultValue.Values.Clear();
report.Report.ReportParameters[3].DefaultValue.Values.Add(param.Param4);
report.Report.ReportParameters[4].DefaultValue.Values.Clear();
report.Report.ReportParameters[4].DefaultValue.Values.Add(param.Param5);
viewer1.LoadDocument(report.Document);
}
}
运行截图:
源码下载:VS2010 + ActiveReports 7