我第一次使用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属性。

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之后才可以)

添加后页面如下:

后台方法:

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);

}

///

/// 获取fastreport模板的路径

///

/// 模板名称

/// 返回模板路径

public string GetReportsPath(string sReportName)

{

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

}

7,          测试效果

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

2对应打印;

3对应分页。

fastreport打印ftp图片_FastReport快速打印(.net)相关推荐

  1. CAD怎么批量打印图纸?如何快速打印批量CAD图纸?

    CAD图纸是我们常用的一种图纸文件格式,在我们使用完CAD图纸文件时,我们经常需要对CAD图纸文件进行打印,那么我们怎么操作可以打印CAD图纸文件?CAD怎么批量打印图纸?如何快速打印批量CAD图纸? ...

  2. fastreport打印ftp图片_C#:使用FastReport打印带图片传参模板的实现方法

    大家都知道,C#打印图片可以直接调用PrintDocument控件的PrintPage事件,通过画刷对image对象直接进行绘制.但是这种方法存在局限,例如如果打印的图片需要按纸张大小进行缩放的话,那 ...

  3. php_printer.dll 打印 jpg 图片,文档打印成图片(ImagePrinter)

    让低版本的office支持将文档打印成图片的工具,ImagePrinter可以将文档"打印(虚拟打印)"成BMP.PNG.JPG.PDF等格式的文件,安装后会成为系统的默认打印机. ...

  4. fastreport打印ftp图片_WebFastReportSetup.wse

    Document Type: WSE item: Global Version=9.02 Title=żҸ۵ӿڰwebӡؼ-װ װ Title French= Installation Flags=0 ...

  5. EPSON票据打印机打印LOGO图片的一种方法

    之前用过一个进入点阵图模式的ESC指令来打印Logo图片,但是打印出来的效果很差劲 今天发现一种打印图片的办法打印出来的效果比较好,其过程就是先把BMP图片文件上传到打印机设备中,然后在发送一串自定义 ...

  6. 平时各种常用的快捷键记录+快速打印出某文件夹下的子文件夹分布

    目录 1. 实用Windows快捷键 2. cmd快捷键 3. chrome浏览器快捷键使用 4. PyCharm使用快捷键 5. PS快捷键 6. LabelImg快捷键 快速打印出某文件夹下的子文 ...

  7. Excel快速打印底端标题,教你一招,肯定行!

    今天跟大家分享一个关于Excel如何快速打印底端标题的技巧,需要的赶紧学起来! 方法步骤: 首先我们在工作表中输入底部要显示的标题文字,然后使用截图工具把这部分文字截图保存为图片,接下来将工作表中的底 ...

  8. Win7图片查看器打印不了图片怎么办

    当我们想浏览电脑中的图片文件时,可以选择系统自带的图片查看器或者第三方看图工具打开,但是有些win7用户发现自己想通过windows图片查看器打印图片却没有反应,Win7图片查看器打印不了图片怎么办? ...

  9. 图片添加水印及打印文件

    给图片添加水印,打印文件. java相关操作: 1. 图片操作:(参考:http://uule.iteye.com/blog/2278169) 2. 打印机操作.(参考:http://tiansoft ...

  10. c# winform 解决PictureBox 无法打印全部图片的问题

    作者:沐汐 Vicky 出处:http://www.cnblogs.com/EasyInvoice 一. 问题描述 在页面使用PictureBox 加载资料图片后,点击"打印",只 ...

最新文章

  1. 随笔-使用时间管理有感
  2. Hbase之protobuf的使用
  3. linux服务器文件索引inodes满了
  4. mysql 逻辑处理_mysql 逻辑查询处理流程
  5. QT QComboBox使用总结
  6. zabbix 时间错误_监控的朋友看过来,官方社区专家开源的Zabbix报表系统
  7. 【蓝桥杯】2019:最长子序列
  8. ubuntu 16.04: 安装NVIDIA驱动,CUDA,CUDNN
  9. 动态规划——Palindrome Partitioning II
  10. HBASE table导出到文件的方法
  11. 布客·ApacheCN 翻译/校对/笔记整理活动进度公告 2020.1
  12. EAX寄存器(关键跳,关键CALL)
  13. 使用注册表管理桌面新建文件
  14. P1361 小猫爬山 bool dfs
  15. HTML 代码混淆与压缩
  16. 通过SetWindowsHookEx实现跨进程子类化
  17. 手动开启/关闭macOS HiDPI,让2k显示器完美适配macOS,解决紫屏问题
  18. python怎么读取石墨表格_用python和柳比歇夫工作法,自动做每周的周总结,导出周小节图表...
  19. VS2010如何添加MSCOMM控件
  20. React中文文档之Conditional Rendering

热门文章

  1. 三目运算(三目表达式)是什么?
  2. 扫码枪 android 广播,Android 扫码枪监听封装
  3. 不一样的90后创业者:创业是另一种生活方式
  4. 干货篇 | 当CPU使用率达到100%该怎么办?
  5. office2016鼠标右键没有新建word等
  6. 华为路由器配置备忘录
  7. 如何让Ubuntu联网
  8. java openxml word_OpenXml读取word内容的实例
  9. 整理一波常用中文文字集合(去重的文字最多中文:20902个文字+ 常用的中文文字3900+)
  10. 微信小程序怎样生成体验版二维码?微信小程序怎么转化为二维码?