文档章节

如何在FastReport.Net中调用自定义的数据源

barlcky
 barlcky
发布于 2015/05/25 13:44
字数 1161
阅读 74
收藏 2
项目过程中需要使用到Fast Report插件来生成报表,但由于数据库的设计问题,所有数据并非是直接从数据库中直接采集,而是需要通过二次加工之后才能使用。虽然在Fast Report的官方DEMO中有使用数组或者list<>对象作为数据源的示例,但是在使用过程中却遇到了些麻烦。因为在使用报表设计器新建模版的时候,无法添加除数据库类型之外的数据源,因此无法制作模版,也就不能进行下一步工作了。 经过一番研究,最终发现了解决方法。其实这根本算不上问题,但是网上找了很多资料都没有写清楚这一点,所以就记录下来作为其他初学者的参考吧。 原来,要想绑定由程序提供的数组或者list<>对象作为数据源,必须通过程序来调用Fastreport插件的设计器,才能实现。所以,首先要在Visual Studio中添加Fastreport插件。方法很简单,在项目中添加引用,然后找到FastRepot.dll,确定即可,随后在代码中添加 using FastReport; 接着,准备原始数据。这里发现个问题,就是如果在数组中添加的是string类型的话,在FastReport中只能显示其长度,同样,如果是在List<>对象中直接添加string类型的值,也只能显示其长度。所以,只能采用变通的方法,在List<>中添加对象,再将该对象的属性赋值为string值,然后就能正常调用。 首先,新建一个类,添加属性若干
public class info
{
private string _detail;
public string detail
{
get { return _detail; }
}
public info(string detail)
{
_detail = detail;
}
}
  随后,声明List<> private List list_name ; 接着将对象添加到List<>中
string name;                              //声明一个字符串
name = "Barlcky";                      //给字符串赋值Barlcky
info info = new info(name);       //将Barlcky赋给info的name属性
list_name = new List();     //初始化一个新的list_name
list_name.Add(info);                  //将新建的info对象添加到List&lt;&gt;中
  到这里,一个简单的数据源就已经产生了,可以进行绑定工作了
Report report = new Report();          //实例化一个新的Report
report.RegisterData(list_name, "姓名");       //将list_name作为一个数据表,添加到数据源中,且命名为“姓名”
report.Design();                                           //调用设计器
  此时,完整的代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using FastReport;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public class info
{
private string _detail;
public string detail
{
get { return _detail; }
}
public info(string detail)
{
_detail = detail;
}
}
private List list_name;
private void button1_Click(object sender, EventArgs e)
{
string name; //声明一个字符串
name = "Barlcky"; //给字符串赋值Barlcky
info info = new info(name); //将Barlcky赋给info的name属性
list_name = new List(); //初始化一个新的list_name
list_name.Add(info); //将新建的info对象添加到List&lt;&gt;中

Report report = new Report(); //实例化一个新的Report
report.RegisterData(list_name, "姓名"); //将list_name作为一个数据表,添加到数据源中,且命名为“姓名”
report.Design(); //调用设计器
}
}
}
  运行这段代码,点击button1按钮, image 就会打开一个FastReport的设计器。 image 在菜单栏选择“数据”,“选择数据源”, image 在弹出的窗口中就可以看到需要的数据了。 image 接下来的就是按需建立模版,然后,将模版保存。以后只要打开这个frx文件,已经添加的数据源会依然保留,可以随意使用。但是如果需要新加数据的话,就需要修改完代码之后再次调用report.Design()方法来添加。 另外,还有个调用图片的问题。如果是保存在数据库中的图片,那么可以通过将其转换为一个Dataset来调用,具体方法可以网上搜一下。由于我的程序在调用图片的时候已经将图片保存在本地目录了,所以就采用了更为简单粗暴的方法,就是在FastReport中直接选定图片的绝对路径,这样在调用这个模版的时候就可以直接读取这张图片了。而如果程序中有地方不需要图片的话,只需要将图片文件删除或者转移就可以了,相当简单好用。当然在程序路径变化的时候,这个方法就有问题了,不过frx文件其实就是一个xml文件,用文本编辑器打开,修改一下路径,就又能用了。小聪明也不过如此了,呵呵。

本文转载自:http://www.barlcky.me/?p=167

barlcky
粉丝 2
博文 61
码字总数 0
作品 0
嘉定
产品经理
私信 提问
报表控件哪家强?.NET三大报表控件盘点

对于大型的综合程序,特别是企业级的程序解决方案,都会依赖报表来解决企业中的各种数据及可视化表现,从而让企业掌握运营中的各项数据汇 总。.NET程序中著名的三大报表控件是:FastReport....

kouxunli1
2014/11/06
0
2
FastReport产品介绍及免费下载地址

公司地址: 俄罗斯 公司网址: http://www.fast-report.com 详细信息: 由技术总监Alexander Tzyganenko创建于1998年,Fast Reports, Inc.开发了快速报表软件:应用程序、库和插件。 FastRe...

yidongkaifa
2014/10/13
0
0
【盘点】最实用的五大企业级报表控件

对于大型的综合程序,特别是企业级的程序解决方案,都会依赖报表来处理企业中的各种数据及可视化表现,从而让企业掌握运营中的各项数据汇总。本文将为您介绍最实用的五大企业级报表控件,为您...

鸟栖沙岩
2016/07/25
54
0
Fastreport.Net用户手册:报表构建过程

使用Fastreport.Net构建报表的过程如下图所示: Report template (later-Report):我们可以在设计器中看到的报表模板。报表被保存在扩展的.FRX文件。一个报表可以由设计器创建,也可以以编程...

鸟栖沙岩
2016/08/19
6
0
如何在ReactJS中使用FastReport Core Web Report

下载FastReport.Net最新版本 FastReport Core Web Report旨在与流行的.Net Core框架协同工作。由于与趋势网框架和Angular,React,Vue等库的兼容性,他获得了更多的人气。因此,许多FastRep...

xiaochuachua
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ant 中的fileset include等拷贝

拷贝一个目录到指定目录下 例:<copy todir="${basedir}/new"> <fileset dir="${basedir}/old"> <include name="appgen" /> <include name="appgen/" /> <include name=appgen/**" /> <incl......

shzwork
9分钟前
1
0
react-jianshu项目的创建

创建项目 1、github上创建仓库react-jianshu 2、将项目克隆到本地git clone git@github.com:startjcu/react-jianshu.git 3、在当前目录(项目目录的上级目录)下执行create-react-app react-...

星闪海洋
18分钟前
2
0
OSChina 周二乱弹 —— 小哥哥,你可以教我写代码吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @nnnm: 生活大爆炸,结束了,这部陪伴了漫长时间的情景喜剧,最终是以诺贝尔奖和大团圆收尾的。虽然,不算精彩,但也是温馨。而少年谢尔顿的...

小小编辑
今天
235
9
typescript 接口 函数类型 可索引类型

函数类型 可索引类型 数字索引签名 字符串索引签名 数字索引签名返回值 必须是 字符串索引签名返回值的子集 只读索引签名

lilugirl
今天
3
0
Oracle SQL语法实例合集

如需转载请注明出处https://my.oschina.net/feistel/blog/3052024 目的:迅速激活Oracle SQL 参考:《Oracle从入门到精通》 ------------------------------------------------------------......

LoSingSang
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部