FastReport.Net为其报表设计器提供了自定义功能,在本文中,将介绍如何使用Active Query Builder替换内置SQL查询编辑器。
- 首先,下载最新版本的.Net Active Query Builder,借助下载的安装程序安装库。
- 创建WindowsForms应用程序,项目中添加对Active Query Builder库的引用。需要以下library(库),在已安装程序的文件夹中找到它们(C:\ Program Files \ ActiveDBSoft \ Active Query Builder 3 .NET \ assemblies):
ActiveQueryBuilder.AdvantageMetadataProvider; ActiveQueryBuilder.Core; ActiveQueryBuilder.DB2MetadataProvider; ActiveQueryBuilder.FirebirdMetadataProvider; ActiveQueryBuilder.MSSQLCEMetadataProvider; ActiveQueryBuilder.InformixMetadataProvider; ActiveQueryBuilder.MSSQLMetadataProvider; ActiveQueryBuilder.MySQLMetadataProvider; ActiveQueryBuilder.ODBCMetadataProvider; ActiveQueryBuilder.OLEDBMetadataProvider; ActiveQueryBuilder.OracleMetadataProvider; ActiveQueryBuilder.OracleNativeMetadataProvider; ActiveQueryBuilder.PostgreSQLMetadataProvider; ActiveQueryBuilder.SQLiteMetadataProvider; ActiveQueryBuilder.SybaseMetadataProvider; ActiveQueryBuilder.UniversalMetadataProvider; ActiveQueryBuilder.View; ActiveQueryBuilder.View.WinForms; ActiveQueryBuilder.View.WPF; ActiveQueryBuilder.VistaDB5MetadataProvider;
其他库:
FastReport;
FastReport.Bars;
FastReport.Editor;
现在将文件添加到项目中,它是一个使用ActiveQueryBuilder的插件。位置:C:\ Program Files(x86)\ FastReports \ FastReport.Net \ Extras \ Misc \ ActiveQueryBuilder \ ActiveQBForm.cs。要执行此操作,请在解决方案资源管理器中右键单击项目名称,然后选择Add——>Existing Item…。由于有演示应用程序,因此表单只包含一个按钮:
现在创建按钮单击的事件处理程序,双击它:
using FastReport.Forms;
using FastReport.Design;
using FastReport;
…
private void button1_Click(object sender, EventArgs e)
{
Report report = new Report();
FastReport.Utils.Config.DesignerSettings.CustomQueryBuilder += new FastReport.Design.CustomQueryBuilderEventHandler(DesignerSettings_CustomQueryBuilder);
report.Design();
}
private void DesignerSettings_CustomQueryBuilder(object sender, CustomQueryBuilderEventArgs e)
{
using (ActiveQBForm form = new ActiveQBForm())
{
form.Connection = e.Connection;
form.SQL = e.SQL;
if (form.ShowDialog() == DialogResult.OK)
e.SQL = form.SQL;
}
}
单击该按钮时,将创建一个报表对象,然后覆盖报表构建器调用方,并导向report designer。下面,为报表生成器创建了一个自定义报表生成器,只需调用先前添加到项目中的ActiveQBForm对象,现在启动应用程序,然后查看报表设计器。如果要编辑现有报表,则在创建报表对象后,需要将报表加载到其中:
report.Load("С:/Program Files (x86)/FastReports/FastReport.Net/Demos/Reports/Image.frx");
现在使用添加图标将数据源添加到报表中:
创建一个支持SQL语言的DBMS连接,以继续使用SQL查询构建器。例如,连接到Access数据库,在创建新数据源的向导的下一步中,要求从数据库中选择所需的表。
在右下角有一个“Add SQL query ...”按钮,它启动了查询创建向导。在创建查询的第一步,需要为新视图指定一个名称,该名称为正在创建的应用程序。
第二步,可以手动输入SQL查询的文本。
在右下角,我们会看到将启动报表生成器的“Query Builder...”按钮,点击它:
在ActiveQueryBuilder的基础上创建的报表生成器,要将表添加到工作空间,请将其从右侧的数据区域拖出。或者右键单击构建器的工作区,然后从上下文菜单中选择“Add”:
按住Ctrl键,从数据库中选择所需的表:
之后,单击“Add Selected Objects”按钮,并在构建器中查看关联的表:
在窗口的底部,可以看到自动生成的SQL查询文本,并在结果选项卡上显示查询的结果。如果对创建的查询感到满意,要接受它,请单击窗口顶部的绿色图标。要取消,请选择红色图标。查询向导发送在构建器中创建的SQL查询文本:
单击“Next”按钮完成查询创建,最后完成,完成了数据源的创建,现在在报表设计器中有一个数据源:
所以使用插件比标准的SQL查询构建器更加便捷。