[实践]FastReport.NET使用示例

废话不说直接正题!

1 下载FastReport.NET。网上搜索一下,下载资源一大把,这是收费的,所以我使用了demo版;

  注意:FastReport.NET 和FastReport Studio不是同一个东西,别下错了;

  FR.NET只支持VS2005/2008;

  官网:http://ns.fast-report.com/en/,有说明文档使用手册下载,论坛也很不错,问题解答的很详细;

2  先在本机上安装好VS2005/2008(我试验的时候使用的是2008),再安装FR.NET,启动VS,新建一个ASP.NET WEB应用程序项目;

3  页面设计:在VS中设计Default.aspx页面时,可直接在工具箱中拖出一个 WebReport控件放置于页面上:

   

                                                  图一

4 数据源指定:FR支持多种数据源(详见其说明),可以在aspx页面上选定数据源,或者进入FR设计器中再指定;

  拖放一个SqlDataSouce控件到页面上,设定好,在测试连接的时候最好预览下数据,确保数据源能正常使用;

  选定WebReport控件,如图一,会有一个“>”标记按钮出现,点击,会出现如图二所示对话框:

                                                          

                        图二

  点击“Select Data Source”,弹出一个对话框,选择刚刚配置好的SqlDataSouce;

5 设计:点击图二中的“Design Report...”就会打开FR设计器,如图三所示:

  

                    图三

  在设计器里,大家可以尽情地发挥,设计出你最喜欢(多数时候得老板喜欢)的样式,FR已经提供了很多模板,很漂亮,大家稍微改动

  一下就能得到自己的模板(.frx文件)。我这里只是简单的拖放了几个文本控件,然后将它们绑定到了前面选定好的datasouce上,大家可以自己

  动手点点看,这一点很简单,也许你是第一次用,但凭猜想你也可以做出来。

6 codding/运行:设计好后点保存,然后关掉设计器(必须关掉,因为它是以置顶子窗体弹出来的,不关掉不能操作VS)。

  在aspx页面上选中webreport控件,查看它的事件,为它添加上StartReport事件,写上几行代码就OK了,如图四:

       

  

                                               图四

注意:在Page_load事件中也有一行代码,我这里的webreport控件的名字就叫“WebReport1”;

保存,运行,大家就可以看到效果了~

到此,这个简单示例就完成了;刚开始使用FR千万记得查看用户手册,你的很多疑问在这里可以找到答案;

另:很多人在问FastReport如何从页面传递参数的问题,我在这里简单说下吧:

  FR的参数分两种,Query Parameter 和Report Parameter;

  Query Parameter (查询参数):是在FR中用向导设定DataSouce时,可以用带参数的SQl文来指定,形如:

    select * from table where country = @parameterName

    对于这种参数,在用向导创建DataSouce时,会弹出一个窗口来让你对参数进行编辑,如图五:

                  图五

查询参数的名字是  qparam1,大家需要给它指定表达式 ,Expression属性中 “[param1]”就是一个表达式,param1是一个报表参数

Report Parameter。这意思就是,在运行时,qparam1的值将会和param1一致;

Report Parameter(报表参数):它的值你可以在FR的脚本中指定,也可以在aspx页面的cs代码中指定(参见图四中被注释掉的代码);看图三设计器界面图,在右边的窗口里,你可以找到参数这一项,你可以在这里新建/编辑一个报表参数;

现在大家应该明白如何从页面传递参数的值,并把它用于SQl查询中了;

但实际上还有一个问题,使用Query Parameter 时,它只能是一个简单值,不能是复杂的字符串,比如这样的SQL文:

select * from table where country in ('en','cn')

如果你想把('en','cn') 这整个部分设定为一个参数那是不行的,向导会报错,这时如何解决?

在FR设计器中,大家可以看到它是有自己的脚本的(C#语言),在其中添加上_StartReport事件,代码如下所示:


 1using System;
 2using
 System.Collections;
 3using
 System.Collections.Generic;
 4using
 System.ComponentModel;
 5using
 System.Windows.Forms;
 6using
 System.Drawing;
 7using
 System.Data;
 8using
 FastReport;
 9using
 FastReport.Data;
10using
 FastReport.Dialog;
11using
 FastReport.Barcode;
12using
 FastReport.Table;
13using
 FastReport.Utils;
14using
 FastReport.Controls;
15

16namespace
 FastReport
17
{
18  public class
 ReportScript
19  
{
20

21    private void _StartReport(object
 sender, EventArgs e)
22    

23
     
24      string str1 = (Report.Parameters.FindByName("param1"
)).Value.ToString();
25
     
26      TableDataSource datasource = Report.GetDataSource("protable"as
 TableDataSource;
27         datasource.SelectCommand =  "select * from protable where " +
 str1 ;
28
      
29    }

30
31  }

32}

    再结合图四中被注释掉的传参代码,大家应该全明白了……ok,就到这里吧。

学海无涯,回头没岸

原文地址:https://www.cnblogs.com/81du/p/2180100.html