FastReport Studio 和 FastReport.net 用法
来源:互联网 发布:商家怎么玩淘宝客 编辑:程序博客网 时间:2024/04/27 19:55
现在的Fr已经升级为FastReportStudio,已经是一个商业的控件了,适用的开发环境不仅仅是Delphi及CB,也包括了VS,查了一下报价,价格不菲。下载了一个Demo版本后进行了测试,感觉不错,应该是最新版了吧,4.4.60。从官方下载的控件有限制,声称最多可显示5页,并有未注册的标记。
Fr报表的操作主要分为两大步:1、设置报表模板;2、在开发环境的代码中引用。我的开发环境为VS2005,使用C#,库文件为Oracle,仅做测试。所使用的表只有一个Grade,数据很少:
一、设置报表的模板
在安装完成下载的控件后,在开始菜单中,启动FastReport Studio的设计器。
在此窗口中,基本上所有的功能都显示出来。在本程序中,报表所需要的按钮只有两个,一个是Insert Band,另一个是TextObject,前者是在页面上划分区域,后者则是设置在区域中显示的数据。在一个页面上可划分为多个区域,如表头、页首、页尾、主数据、明细数据、合计区等,我在此页面上只分三个区:页的标题,显示标题及打印时间、页码等;页首,显示数据的字段名称;主数据区则显示从库中读取出的数据。设计完成后的页面如下图所示:
在此报表中的ReportTitle、PageHeader及MasterData均可在Insert Band中找到。
页面的总体设计如边距等和Word文档类似,显示的标题等控件则是Text Object了,如果是直接显示的文本,可直接双击此控件后输入,其它功能则要在双击后出现的窗口内选择,如行号Line#、页码Page#等。
在显示外部数据列时,输入的数据有固定的格式:
1、数据分为两部分,中间有圆点隔开,前面为数据集的名称,后面为字段名,字段名必须用双引号。
2、此数据必须用方括号,方括号的意思类似于变量。
在此报表中,程序调用时需要记住的三点:保存的报表名、所设置的数据集名及列名。
在C#中新建一个WinForm项目,并在工具栏中引用FastReport Studio的Com库,选择其中的预案控件,并将其拖放到窗口上。
在FastReport Studio的安装路径的例子程序中,将FrxDataTable复制到程序中并加入。程序代码如下:
2 {
3 TfrxReportClass report = new TfrxReportClass();
4 //为报表指定模板文件
5 report.LoadReportFromFile(Application.StartupPath + "//demo.fr3");
6
7 //此处的Class为报表中设计时所使用的数据集名称
8 FrxDataTable datatable = new FrxDataTable("class");
9
10 //设置列
11 datatable.Columns.Add("id", typeof(int));
12 datatable.Columns.Add("name", typeof(string));
13
14 string connString = "Data Source=master;Persist Security Info=True;User ID=l;pwd=1;Unicode=True";
15 OracleConnection conn = new OracleConnection(connString);
16 OracleCommand command = new OracleCommand("SELECT t.id,t.name FROM grade t", conn);
17 try
18 {
19 conn.Open();
20
21 //赋值
22 using (OracleDataReader rdr = command.ExecuteReader())
23 {
24 while (rdr.Read())
25 {
26 datatable.Rows.Add(new object[] { rdr.GetInt32(0), rdr.GetString(1) });
27 }
28 datatable.AcceptChanges();
29 }
30 }
31 finally
32 {
33 conn.Close();
34 }
35 //绑定
36 datatable.AssignToReport(true, report);
37 datatable.AssignToDataBand("MasterData1", report);
38
39 this.axTfrxPreviewX1.Report = report;
40 report.ShowReport();
41 }
42
运行程序显示结果:
报表的导出是一件很麻烦的事,因为所需要的格式不同,用户的要求也不一样。FastReport Studio提供了转换的方法,不需要再自己费力,还不一定讨好。可以使用的格式有多种:
如果需要送至打印机上,那就更简单了:
report.print();
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事件,代码如下所示: 再结合图四中被注释掉的传参代码,大家应该全明白了……ok,就到这里吧。 FastReport.NET使用示例
运行时更改报表模板:
FastReport Studio在显示报表时,先读取报表的模板,然后再从数据集内取得数据写入模板中,最后合并显示。所以在需要更改报表的格式时,只要将报表模板文件更改就可以了。
{
TfrxReportClass report = new TfrxReportClass();
report.LoadReportFromFile(Application.StartupPath + "//demo.fr3");
report.DesignReport();
}
以上的方式只能更改报表的格式,而不能增删字段,因为字段已经在代码固定,增加字段时需要更改代码赋值,删除时仅可将显示的列设置为非显示。这和在Delphi中的不同,原来给的是数据集,只要给的数据集中字段足够,就可以在报表中任意增删了。也许控件已经提供了这种功能,只是我还没有体会到。
- FastReport Studio 和 FastReport.net 用法
- FastReport.Net 和fastreport
- FastReport
- FastReport
- FastReport
- FastReport.NET使用示例
- fastreport.net 竖排
- FastReport.NET 本地化问题。
- fastreport.net分栏打印
- FastReport.net 打印空行
- fastreport.net 调用模板
- FastReport.net 常用方法
- FastReport.Net教程大全
- FastReport.net 常用方法
- FastReport Studio v4.6.98.0
- [.Net码农]FastReport.Net使用
- FastReport.Net中使用列表和数组作为报表数据源
- FastReport for .net 学习笔记
- windows进程信息查看 终止指定进程
- Nanotron开发模块
- CSDN等级制度
- 汶川大地震两周年纪念日
- 近工作安排
- FastReport Studio 和 FastReport.net 用法
- javascript cookies 存、取、删除实例
- C#中DllImport用法和路径问题
- putimage() 输出图像函数
- 2010中国盛世开启——财富报告
- 登陆验证
- 交友真的很关键
- 数据访问类的定义
- 华为的研发给我们什么启示