FastReport使用DataSet作数据源

1、打开FastReport的设计器,

2、选择【File】-》【New】 新建FastReport模板。

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

4、编辑导出的.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>

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

第一行直接双击输入文本;

第二行直接将右边的数据源托到单元格中;

设置边框、字体。

6、

添加事件后台方法

如下图,选中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

部分winform调用代码:

        /// <summary>
        /// 报表
        /// </summary>
        private FastReport.Report FReport;
        /// <summary>
        /// 数据源
        /// </summary>
        private DataSet FDataSet;
        /// <summary>
        /// 模板地址
        /// </summary>
        private string _reportFolder = Application.StartupPath + "\\ReportMd\\";

FReport = new FastReport.Report();
FReport.Preview = preview1;//preview1是private FastReport.Preview.PreviewControl preview1;
string reportName = _reportFolder + "rpBalance.frx";
string sql = "SELECT a,b,c FROM table";
FDataSet = DBUtility.DbHelperSQL.Query(sql);
FDataSet.Tables[0].TableName = "Table1";//数据源名称
FReport.Load(reportName);
FReport.RegisterData(FDataSet);
FReport.Parameters[0].Value = FDataSet.Tables[0].Rows.Count.ToString();//参数
FReport.Prepare();
FReport.ShowPrepared();
时间: 2024-10-04 18:23:07

FastReport使用DataSet作数据源的相关文章

用dataset做数据源时,让gridview显示的列名与数据库表中的字段名不同

原文发布时间为:2008-10-27 -- 来源于本人的百度文章 [由搬家工具导入] 确定GridView的AutoGenerateColumns设置为False;使用GridView的“编辑列”,添加一个绑定字段:“BoundField”,在该绑定字段的BindField的属性中的数据中的DataField中添加你要绑定的数据库中表的列的名称,然后用你的代码没问题了,或者是在“外观”中的“HeadText”中输入要显示的名称也可以实现

FastReport报表设计

目录 5.1 前言 5.2 基本概念及操作 5.3 报表设计与范例 5.4 常用功能及函数 5.5 报表设计常用技巧 5.1 前言 汽车业务管理系统(VBMS)使用FastReport3.0报表系统设计报表.    本文主要描述使用FastReport设计报表的基本概念.使用方法.设计技巧和范例,不是FastReport的用户手册因此并不针对每个细节进行阐述.立足于建立设计报表的概念和实用技巧范例的讲解,面对的是具有一定计算机操作水平的用户.在VBMS中使用FastReport设计报表应该掌握以

FastReport报表设计(仔细看)

FastReport报表设计 2011-06-16 16:56:19|  分类: 系统开发|举报|字号 订阅 下载LOFTER我的照片书  | 目录 5.1 前言 5.2 基本概念及操作 5.3 报表设计与范例 5.4 常用功能及函数 5.5 报表设计常用技巧 5.1 前言 汽车业务管理系统(VBMS)使用FastReport3.0报表系统设计报表.    本文主要描述使用FastReport设计报表的基本概念.使用方法.设计技巧和范例,不是FastReport的用户手册因此并不针对每个细节进行

报表生成控件FastReport VCL

FastReport VCL是一款Delphi和C++Builder平台下,功能强大的报表生成控件,它能使用户的应用程序快速有效地产生报表控件,提供了创建报表所需的所有工 具,包括报表引擎,报表设计工具,预览器,对话框设计工具,以及Pascal-like 宏解释程序.FastReport VCL工作在Borland Delphi 2-7及Borland C++Builder 1-6环境下.它是用对象语言Pascal来写的,并用到了Borland VCL库. FastReport VCL在线事例

C# 导入Excel到DataSet中

class Import { /// <summary> /// 导入Excel到DataSet中 /// </summary> /// <param name="strFileSourse">文件的路径和文件全名,含扩展名</param> /// <returns></returns> public DataSet ExcelToDataSet(string strFileSourse) { DataSet ds

springboot2多数据源完整示例

springboot2 + mybatis + mysql + oracle + sqlserver多数据源的配置 相信很多朋友在开发的时候,可能会碰到需要一个项目,配置多个数据源的需求,可能是同一种数据库,也可能是不同种类的数据库. 这种情况,我们就需要配置多数据源对程序的支持了. (本例理论上支持很多种数据库,或者同种数据库配置多个库分别作数据源也许.拓展新强) 环境介绍 web框架:SpringBoot2 orm框架:Mybatis 数据库连接池:Druid 主数据源:Mysql 从数据源

.NET相关知识点

1. C# 抽象类和接口的区别 抽象类 (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 (2) 抽象类不能被实例化 (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 (4) 具体派生类必须覆盖基类的抽象方法 (5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖.如果不覆盖,则其具体派生类必须覆盖它们 接口 (1) 接口不能被实例化 (2) 接口只能包含方法声明 (3) 接口的成员包括方法.属性.索引器.事件 (4) 接口

Entity Framework 全面教程详解(转)

目录 预备知识    2 LINQ技术 2 LINQ技术的基础 - C#3.0    2 自动属性    2 隐式类型    2 对象初始化器与集合初始化器    3 匿名类    3 扩展方法    4 Lambda表达式    4 .NET中的数据访问    4 DataSet方案    5 改进的的DataSet方案    5 手写代码通过ADO.NET2.0连接类与数据库交互    5 ORM – LINQ to SQL    6 深入了解Entity Framework    7 En

ASP.NET面试点汇总

1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性.一致性:最后再考虑用自写业务逻辑实现,但这种方式效率最低.编程最复杂,当为下下之策 2 : ADO.NET相对于ADO等主要有什么改进?答 ADO数据以Recordset 形式存储 ADO.NET以DataSet形式存储Recordset对数据库持续连接访问A