ActiveReports 控件与Visual Studio完美集成,给我们带来更为灵活易用的报表定制和自定义控件嵌入支持,除了可以在报表中使用 ActiveReports 内置控件外,您还可以在报表中添加任意的第三方 .NET 控件,从而满足您更多的报表扩张能力的需求。本文展示的是在 ActiveReports 区域报表中使用 C1Gauge for Windows Forms 和 C1Chart for Windows Forms 控件。
1、创建报表文件
在应用程序中创建一个名为 rptControls1.cs 的 ActiveReports 报表文件,ActiveReports 区域报表(基于代码)。在工程中添加 C1.Win.C1Chart.2.dll 和 C1.Win.C1Gauge.2.dll 引用。
2、设计报表界面
需要注意的是在 WinForms 和 ASP.NET 程序中稍微有点不同的是,在 WinForms 应用程序开发时,切换到报表设计界面,在 Visual Studio 工具箱中会显示您当前环境中所有可用的 WinForms 平台控件,此时,我们可以直接将需要的任意其他第三方控件拖拽到 ActiveReports 区域报表设计界面中;在 ASP.NET 程序开发时,Visual Studio 工具箱中就不会显示 WinForms 平台的控件,所以不能直接将第三方控件添加到报表设计界面,此时,我们需要将 Picture 控件添加到报表设计界面,然后在后台代码中实现第三方控件的加载操作。
切换到报表设计界面,并将 ActiveReports 7 区域布局报表分类下的 RichTextBox 和 Picture 控件添加到报表中。
切换到报表后台代码视图,在报表的 ReportStart 事件中加载第三方控件,代码如下:
// 添加 C1Gauge 控件
private void AddGauge1(){C1.Win.C1Gauge.C1Gauge c1Gauge1 = new C1.Win.C1Gauge.C1Gauge();
c1Gauge1.Load(string.Format(@"{0}\Data\C1RadialGauge1.xml", BasePath));c1Gauge1.BackColor = Color.White;c1Gauge1.Gauges[0].Value = 80;c1Gauge1.Gauges[1].Value = 88;c1Gauge1.Gauges[2].Value = 75;picture1.Image = c1Gauge1.GetImage(450,300);}// 添加 C1Chart 控件
private void AddChart1(){C1.Win.C1Chart.C1Chart c1Chart = new C1.Win.C1Chart.C1Chart();
c1Chart.LoadChartFromFile(string.Format(@"{0}Data\C1Chart1.chart2dxml", BasePath));picture2.Image = c1Chart.GetImage(new Size(800,370));
}private void rptControls1_ReportStart(object sender, EventArgs e){AddGauge1();AddChart1();richTextBox1.LoadFile(string.Format(@"{0}Data\支持第三方控件.rtf", BasePath));}