fastreport打印ftp图片_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属性。
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)相关推荐
- CAD怎么批量打印图纸?如何快速打印批量CAD图纸?
CAD图纸是我们常用的一种图纸文件格式,在我们使用完CAD图纸文件时,我们经常需要对CAD图纸文件进行打印,那么我们怎么操作可以打印CAD图纸文件?CAD怎么批量打印图纸?如何快速打印批量CAD图纸? ...
- fastreport打印ftp图片_C#:使用FastReport打印带图片传参模板的实现方法
大家都知道,C#打印图片可以直接调用PrintDocument控件的PrintPage事件,通过画刷对image对象直接进行绘制.但是这种方法存在局限,例如如果打印的图片需要按纸张大小进行缩放的话,那 ...
- php_printer.dll 打印 jpg 图片,文档打印成图片(ImagePrinter)
让低版本的office支持将文档打印成图片的工具,ImagePrinter可以将文档"打印(虚拟打印)"成BMP.PNG.JPG.PDF等格式的文件,安装后会成为系统的默认打印机. ...
- fastreport打印ftp图片_WebFastReportSetup.wse
Document Type: WSE item: Global Version=9.02 Title=żҸ۵ӿڰwebӡؼ-װ װ Title French= Installation Flags=0 ...
- EPSON票据打印机打印LOGO图片的一种方法
之前用过一个进入点阵图模式的ESC指令来打印Logo图片,但是打印出来的效果很差劲 今天发现一种打印图片的办法打印出来的效果比较好,其过程就是先把BMP图片文件上传到打印机设备中,然后在发送一串自定义 ...
- 平时各种常用的快捷键记录+快速打印出某文件夹下的子文件夹分布
目录 1. 实用Windows快捷键 2. cmd快捷键 3. chrome浏览器快捷键使用 4. PyCharm使用快捷键 5. PS快捷键 6. LabelImg快捷键 快速打印出某文件夹下的子文 ...
- Excel快速打印底端标题,教你一招,肯定行!
今天跟大家分享一个关于Excel如何快速打印底端标题的技巧,需要的赶紧学起来! 方法步骤: 首先我们在工作表中输入底部要显示的标题文字,然后使用截图工具把这部分文字截图保存为图片,接下来将工作表中的底 ...
- Win7图片查看器打印不了图片怎么办
当我们想浏览电脑中的图片文件时,可以选择系统自带的图片查看器或者第三方看图工具打开,但是有些win7用户发现自己想通过windows图片查看器打印图片却没有反应,Win7图片查看器打印不了图片怎么办? ...
- 图片添加水印及打印文件
给图片添加水印,打印文件. java相关操作: 1. 图片操作:(参考:http://uule.iteye.com/blog/2278169) 2. 打印机操作.(参考:http://tiansoft ...
- c# winform 解决PictureBox 无法打印全部图片的问题
作者:沐汐 Vicky 出处:http://www.cnblogs.com/EasyInvoice 一. 问题描述 在页面使用PictureBox 加载资料图片后,点击"打印",只 ...
最新文章
- 随笔-使用时间管理有感
- Hbase之protobuf的使用
- linux服务器文件索引inodes满了
- mysql 逻辑处理_mysql 逻辑查询处理流程
- QT QComboBox使用总结
- zabbix 时间错误_监控的朋友看过来,官方社区专家开源的Zabbix报表系统
- 【蓝桥杯】2019:最长子序列
- ubuntu 16.04: 安装NVIDIA驱动,CUDA,CUDNN
- 动态规划——Palindrome Partitioning II
- HBASE table导出到文件的方法
- 布客·ApacheCN 翻译/校对/笔记整理活动进度公告 2020.1
- EAX寄存器(关键跳,关键CALL)
- 使用注册表管理桌面新建文件
- P1361 小猫爬山 bool dfs
- HTML 代码混淆与压缩
- 通过SetWindowsHookEx实现跨进程子类化
- 手动开启/关闭macOS HiDPI,让2k显示器完美适配macOS,解决紫屏问题
- python怎么读取石墨表格_用python和柳比歇夫工作法,自动做每周的周总结,导出周小节图表...
- VS2010如何添加MSCOMM控件
- React中文文档之Conditional Rendering