使用功能强大的插件FastReport.Net打印报表实例

  我第一次使用FastReport插件做的功能是打印一个十分复杂的excel表格,有几百个字段都需要绑定数据,至少需要4个数据源,而且用到横向、竖向合并单元格。

  我不是直接连接数据库,而是使用RegisterData的方式自己注册DataSet对象,所有的表Table都是代码生成,填充到DataSet中,然后注册到控件中。

  最开始尝试使用这个插件做一个简单的功能使用的就是下面的例子,不过花了一整天,还请假了4个人都没有搞出来,晚上拿着别人的模板直接修改,然后测试,就通过了。

  之前测试,一直都提示未连接到数据源,原因是我直接使用记事本来向模板添加数据源导致的,平时别人使用的数据源都是自己写代码,调用Design的方式得到的,而且只能是winform程序,webform程序不行,因为要启动com组件。

  下面是我总结的特别简单的一个方式,使用RegisterData的方式自己注册DataSet对象。

1,          选择【File】-》【New】 新建FastReport模板,选择下图的1。

2,          选择【View】-》【Data】,显示如下,导出Dictionary,保存。

3,          编辑导出的.frd文件,编辑完后保存,再导入。

如下:

(1)  TableDataSource 是数据源节点。

(2)  Name是DataSet对象的Table的表名。

(3)  Column是Table的列,模板绑定数据时,使用Column的Name属性。

<?xml version="1.0" encoding="utf-8"?>

<Dictionary>

<TableDataSource Name="Table1" ReferenceName="Data.Table1" DataType="System.Int32" Enabled="true">

<Column Name="姓名" DataType="System.String" PropName="Column"/>

<Column Name="密码" DataType="System.String" PropName="Column"/>

</TableDataSource>

</Dictionary>

4,          编辑模板,添加一个Table控件。

第一行直接双击输入文本;第二行直接将右边的数据源托到单元格中;

设置边框、字体。

5,          添加事件后台方法

如下图,选中Table1,在事件ManualBuild的后面双击,添加下面的代码:

// 控件Table1的构建事件

private void Table1_ManualBuild(object sender, EventArgs e)

{

DataSourceBase data1 = Report.GetDataSource("Table1"); // 获取DataSet中表名为Table1的数据源

data1.Init(); // 初始化

Table1.PrintRow(0); // 控件Table1打印第0行

Table1.PrintColumns(); // 每打印一行,都要调用 PrintColumn或PrintColumns

while(data1.HasMoreRows) // 打印重复循环的行

{

Table1.PrintRow(1);

Table1.PrintColumns();

data1.Next(); // 读取下一行

}

}

说明:

(1)   Table控件是从第0行开始的。

(2)   绑定数据的重复行,算作一行。

(3)   输出行之前,要先调用Init() 方法,当有两个数据源,比如data1和data2,data1又是data2的父数据源,需要把data1当做参数,如 data2.Init(data1);

(4)   每打印一行,都要调用 PrintColumn或PrintColumns

6,          添加c#代码

新建一个测试页面test.aspx,将一个FastReport控件拖放到页面上(只有按照过FastReport.net,且引用了FastReport.dll,FastReport.Bars.dll,FastReport.Web.dll之后才可以)

添加后页面如下:

<body>

<form id="form1" runat="server">

<cc1:WebReport ID="webReport" runat="server" OnStartReport="WebReport_StartReport" />

</form>

</body>

后台方法:

protected void WebReport_StartReport(object sender, EventArgs e)

{

DataSet ds = new DataSet();

DataTable table1 = new DataTable();

table1.TableName = "Table1"; // 一定要设置表名称

ds.Tables.Add(table1);

// 添加表中的列

table1.Columns.Add("姓名", typeof(string));

table1.Columns.Add("密码", typeof(string));

// 任意添加一些数据

for (int i = 0, maxI = 10; i < maxI; i++)

{

DataRow row = table1.NewRow();

row["姓名"] = "我是" + i.ToString();

row["密码"] = i.ToString();

table1.Rows.Add(row);

}

Report FReport = (sender as WebReport).Report;

string sPath = GetReportsPath("test.frx") ;

FReport.Load(sPath);

// 将DataSet对象注册到FastReport控件中

FReport.RegisterData(ds);

}

/// <summary>

/// 获取fastreport模板的路径

/// </summary>

/// <param name="sReportName">模板名称</param>

/// <returns>返回模板路径</returns>

public string GetReportsPath(string sReportName)

{

return FastReport.Utils.Config.ApplicationFolder + "Reports\\" + sReportName;

}

7,          测试效果

1对应保存,可以是各种格式;

2对应打印;

3对应分页。

http://jingyan.baidu.com/article/046a7b3ec2c744f9c37fa944.html

时间: 2024-10-13 23:55:17

使用功能强大的插件FastReport.Net打印报表实例的相关文章

Kalendae——一款功能强大的日历插件

url:http://zjingwen.github.io/SetTimeOutGoBlog/kalendae/index.html (如果打开过慢,或者打不开,原因你懂得.) 一.Kalendae--一款功能强大的日历插件,英文版的,我英文太渣,有没有找到,中文文档.只能自己慢慢翻译,鼓捣了. 二.基本信息 Kalendae支持多种日历样式,可双联.单联.多联,支持单选日期,多选日期.联排选择.跨月选择.而且依赖图片极少,对于使用css来重构UI界面,非常有利. 依赖于了kaledae.js.

分享一个jquery功能强大的提示信息插件代码

代码属于提示文字特效,很好,使用有些复杂,请参demo使用 下载地址:jquery功能强大的提示信息插件代码 预览DEMO:DEMO 分享一个jquery功能强大的提示信息插件代码,布布扣,bubuko.com

功能强大的web打印控件lodop的使用

打印是很多web系统都需要的功能,最近找到一款功能强大,使用简单,价格便宜的web打印工具Lodop,免费也能用,不过有水印,也不贵商业开发建议购买. 废话不多说,拿来就用,从简单的打印开始. 1.下载,放入项目中,引入控件. <script language="javascript" src="~/Content/Lodop6/LodopFuncs.js"></script> <object id="LODOP_OB&quo

Vanilla Masker – 功能强大的输入过滤插件

Vanilla Masker 是一个纯 JavaScript 实现的输入内容过滤和自动转换插件.现在你可以使用一个简单而纯粹的 JavaScript 库来控制你的 input 元素,而不需要加载 jQuery,Zepto 或者其它框架.不用担心兼容性,因为这是一个跨浏览器和跨设备的库. 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[附源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12款经典的白富美型 jQuery 图片轮播插件 让网站动起来!12款优秀的 jQuer

插件介绍 :cropper是一款使用简单且功能强大的图片剪裁jQuery插件。

简要教程 cropper是一款使用简单且功能强大的图片剪裁jQuery插件.该图片剪裁插件支持图片放大缩小,支持鼠标滚轮操作,支持图片旋转,支持触摸屏设备,支持canvas,并且支持跨浏览器使用. cropper提供了大量的参数.方法和事件供图片的剪裁操作. 安装 可以通过Bower或NPM来安装该插件. 1 2 bower install cropper npm install cropper                使用方法 使用该图片剪裁插件首先要引入必要的js和css文件. 1 2

基于jQuery功能强大的图片查看器插件

viewer是一款功能强大的图片查看器jQuery插件.它可以实现ACDsee等看图软件的部分功能.它可以对图片进行移动,缩放,旋转,翻转,可以前后浏览一组图片.该图片查看器还支持移动设备,支持键盘控制,功能十分强大. 在线预览   源码下载 安装 可以通过nmp或bower来安装该图片查看器插件. npm install imageviewer bower install imageviewer 使用方法 使用该幻灯片插件需要引入jQuery,viewer.css和viewer.js文件. <

jQuery功能强大的图片查看器插件

简要教程 viewer是一款功能强大的图片查看器jQuery插件.它可以实现ACDsee等看图软件的部分功能.它可以对图片进行移动,缩放,旋转,翻转,可以前后浏览一组图片.该图片查看器还支持移动设备,支持键盘控制,功能十分强大. 查看演示      下载插件 安装 可以通过nmp或bower来安装该图片查看器插件. npm install imageviewer bower install imageviewer 复制代码 使用方法 使用该幻灯片插件需要引入jQuery,viewer.css和v

MVC技术的功能强大的报表创建和设计控件

Stimulsoft Reports.Web for MVC是一款采用MVC技术的功能强大的报表创建和设计控件,控件提供了完整的报表创建.编辑和显示功能,支持典型的classic ASP.NET MVC 和 ASP.NET MVC Razor,同样也支持所有从2.0开始的MVC框架,该控件开发出来的项目并不需要在客户机上安装.NET框架.ActiveX控件以及任何插件. 具体功能: 是否可以直接在浏览器中编辑和创建报表? 是的,Stimulsoft Reports.Web for MVC包含了完

功能强大的商业图表控件Essential Chart for ASP.NET MVC

Essential Chart for ASP.NET MVC是一款功能强大的商业图表控件,提供了创新的数据对象模型可以很容易地与多种数据源进行绑定,提供了35种图表类型,支持2D和3D显示,多轴显示.实时数据显示.导出为图片以及打印和打印预览,软件开发人员可以使用该控件开发出专业的商业应用程序. 具体功能: 支持无限制数据序列和无限制数据点 支持多种坐标轴样式 支持自定义轴标签和显示方向 支持轴反转和颠倒轴 支持自定义数据点 支持图表放大和滚动以及panning 控件提供了交互式地十字光标,可