FastReport.Net长期以来一直在提供插件——连接各种数据库的连接器,这些插件允许用户向报表设计器添加连接器以连接到所需的数据库,创建这些插件连接器的目的是简化连接到数据源的过程。 但是,使用这些插件有一个不便之处——必须先编译它们。为此,用户必须首先从开发人员的数据库站点下载第三方库,但是,一旦编译完插件,就可以随意使用它。
FastReport现在通过Nuget包管理器以库的形式分发这些连接器,对于.Net Framework 4应用程序和ASP .Net Core都是如此,现在不需要使用第三方库来编译插件。 使用这些库的特性:要创建报表,需要使用设计器、插件、单独的Report Designer程序。但是,使用已安装的连接器库,用户需要从应用程序中调用设计器以在报表中使用这些连接器。 如果WinForms应用程序从代码中调用报表设计器,那么在.Net Core应用程序中就不可能实现,当然,还有用于Web开发报表的在线设计器。因此,必须首先创建一个WinForms应用程序,将所需的连接器安装到其中并调用报表设计器。或者可以使用FastReport附带的已编译的Designer.exe应用程序,但在这种情况下,受支持的DBMS列表将受到限制(支持MS SQL)。 现在通过一个例子来了解一下:创建一个测试WinForms应用程序并向其添加FastReport.Net库,并从manager Nuget安装连接器。
该图显示有数据库的连接器:MsSql,MySql,Postgres,SQLite,Json,MongoDB,RavenDB,尝试连接到Json数据源,从Nuget安装适当的连接器。在表单上,为它添加一个按钮和以下代码:
using FastReport; using FastReport.Data; using FastReport.Utils; … private void button1_Click(object sender, EventArgs e) { new JsonAssemblyInitializer(); Report report = new Report(); report.Design(); }
在按钮单击事件处理程序的第一行中,初始化添加的JSON连接器,然后创建一个报表对象并调用设计器。在设计器中,创建了一个新的数据连接。在可用的连接器中,看到了添加的JSON,选择它并使用.json扩展名设置数据文件的路径。
创建报表模板并保存,现在,在按钮的代码中,替换该行:
report.Design();
改为:
report.Load(@"TestJsonConnection.frx"); report.Show();
在这里,指定之前创建的报表文件的路径,运行报表。使用两个库连接器——从Nuget安装库,并在代码中初始化它。但是,如果它来自ASP .Net Core应用程序,并非如此简单。
首先,创建一份报表。为此,需要从代码中运行设计器,在Web项目中,这是不可能实现。将创建一个WinForms应用程序,专门用于运行设计器,将插件安装在单独的ReportDesigner中并在其中创建报表。其次,除了初始化连接器库之外,还需要指定连接字符串,创建表以及添加与报表的连接:
JsonDataConnection conn = new JsonDataConnection(); conn.ConnectionString = "Json=\"K:\\Documents\\nwind.json\""; conn.CreateAllTables(); report.Dictionary.Connections.Add(conn);
通过操作,这与使用第三方库连接数据库,因此,在.Net Core的情况下,并非所有内容都是如此明确。但在.Net Framework 4应用程序中,优于第三方库的优势显而易见。