FastReport.Net 报表连接数据库

通常开发人员在学习FastReport .Net时出现的第一个问题就是:如何将数据连接到报表中?幸运的是,该报告生成器有一个直观的界面设计器。为节省您的时间,我将简单谈论一下在报表中连接数据源。接下来我将为您展示如何从用户应用程序中传递连接字符串。所以,本文分为两部分:在报表中连接数据库和将连接字符串传递到报表。
在报表中连接数据库

1、有2种方式将新的数据源添加到报表中:

  • 通过工具栏上“报表”选项卡图标;
    FastReport.Net 报表连接数据库_第1张图片

  • 从“数据”窗口中的Actions下拉菜单中;
    FastReport.Net 报表连接数据库_第2张图片

让我们看一个例子。创建数据源。在打开的窗口中,选择新的连接。可以选择不同类型的连接,以连接到数据库。这里采用MS Access connection。
FastReport.Net 报表连接数据库_第3张图片

进一步选择我们要工作的表单。你可以可以选择使用SQL查询的数据(没有XML数据库)。为此有一个查询生成器,你需要手动撰写需求。
FastReport.Net 报表连接数据库_第4张图片

下一步,设置查询的参数;接下来重写列的数据类型。

我选择了2张表:员工表和订单。它们有字段EmpNo绑定,要做到这一点,打开“数据”的Action菜单,选择新的关系。
FastReport.Net 报表连接数据库_第5张图片

父表是员工,孩子表-订单。绑定EmpNo字段。
FastReport.Net 报表连接数据库_第6张图片

我们为什么这样做?现在我们可以为每个雇员显示一个订单列表。创建一个简单的报表模板:
FastReport.Net 报表连接数据库_第7张图片

这里的带(band)“数据”包含详细的带“数据”。

正如我们可以看到的:第一个显示雇员的名字,第二个显示的是一些订单数据。
详细的带数据可以从“上下文”菜单中添加,或者通过带配置窗口(配置带)来添加:
FastReport.Net 报表连接数据库_第8张图片

如果我们双击第一个带“数据”,我们将看到表名雇员被选为数据源,第二个带“数据”为订单。当你将字段添加到空的带时,数据源会自动选择,当然你也可以改为手动。
FastReport.Net 报表连接数据库_第9张图片

如果不设置数据源,则不显示数据。更确切地说,只是第一行的数据添加字段。保存报表。

2、从应用程序中传递连接字符串到报表

创建窗体应用程序。从FastReport .NET标签向窗体添加报表组件和按钮:
FastReport.Net 报表连接数据库_第10张图片

从应用程序中传递连接字符串到报表。

首先,你需要稍微修改先前创建报表。打开它的设计器。
创建报表参数。我们会给它一个连接字符串。在“数据”窗口中查找项目参数。右键点击它-新参数。在“属性”窗口中,设置参数名称-conn。
FastReport.Net 报表连接数据库_第11张图片

现在选择“数据”窗口中的连接,接下来在“属性”窗口中,找到ConnectionStringExpression并添加到我们的参数。修改报表完成,保存并返回到程序。

双击按钮运行。在按钮的事件处理程序添加的主要应用程序代码:

private string ReportPath = Environment.CurrentDirectory + "/ConnectionFromApp.frx";
private string DBPath = Environment.CurrentDirectory + "/demo.mdb";
private string ConnStr;

在主要操作之前,我们声明一个变量来存储报表路径和数据库。

private void RunBtn_Click(object sender, EventArgs e)  
 {  
 using (Report report = new Report())  
 {  
 report.Load(ReportPath);  
 ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DBPath + ";User ID=Admin";  
 report.SetParameterValue("conn", ConnStr);
   report.Show();  
 }  
 }

点击按钮创建一个报告实例。然后加载该报告,指定连接字符串变量的值,指定连接字符串的报表参数值,并运行该报表。
FastReport.Net 报表连接数据库_第12张图片

正如从文章中所说的那样,将报表连接到数据是非常容易的事情,你可以连接报表到任意的数据库,如果需要,你可以传输连接字符串到报表。当用户选择的是本地驱动器的数据库时,这就再方便不过了。

你可能感兴趣的:(fastreport,.net,报表,数据库,数据库连接)