前言

这两天群里一直有群友问一些关于FastReport的问题,结合他们的问题,在这里做一个整理,有不明白的可以加

FastReport 交流群

群   号:554714044

工具

VS2017 +FastReport

开始

1.新建项目,添加三个按钮。预览、设计、打印

2.添加FastReport 引用,这里有三个dll文件

3.思路:首先打印要有模板,要有打印的数据,两者结合呈现出我们想要的打印格式,然后进行各种操作。这个思路一定要清晰,这样我们才能知道我们需要做什么。

话不多说上代码:(这里只给出了最简单的逻辑)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FastReport; namespace FastReportTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string Url = "Test.frx";//文件路径(目前存放在运行目录下面,方便调试),后续建议做数据库文件管理,存放在数据库
Report frt = new Report(); /// <summary>
/// 打印控件事件开始准备工作
/// 获取打印模板文件
/// </summary>
private void PrintPrepare()
{
frt.Load(Url);
frt.RegisterData(PrintData(), "Tab1");
frt.GetDataSource("Tab1").Enabled = true;
} private void 预览_Click(object sender, EventArgs e)
{ PrintPrepare();
frt.Show();
} private void 设计_Click(object sender, EventArgs e)
{
PrintPrepare();
frt.Design();
} private void 打印_Click(object sender, EventArgs e)
{
PrintPrepare();
frt.PrintPrepared();
frt.PrintSettings.ShowDialog = false;
frt.Print();
} /// <summary>
/// 虚拟打印数据源、
/// 数据源建议:
/// 1.数据源最好在数据库建立单独的表管理,这样每次要修改打印格式,不用编译代码,直接修改数据库即可
/// 2.多个数据源的,如果存在主从关系,建议建立视图,直接查询视图,方便数据处理。
///
/// </summary>
private DataTable PrintData()
{
DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Price", typeof(decimal)); for (int i = ; i < ; i++)
{
DataRow dr = dt.NewRow();
dr["ID"] = i;
dr["Name"] = "测试" + i.ToString();
dr["Price"] = i * ;
dt.Rows.Add(dr); } return dt;
}
}
}

FastReport 设置

添加好以上的代码,我们就可以运行看一下效果

File

Save As :另存为,备份用,不多说

Page Setup:页面设置,常用Paper:设置纸张规格 Margins:页边距

其余三个很少用到。

Printer Setup :打印机设置,这个界面我们可以在打印的时候默认不弹出,如果需要制定打印机或者其他信息,

可以把 frt.PrintSettings.ShowDialog = false; 改成 frt.PrintSettings.ShowDialog = true;即可

Edit

此部分不常用,略

View

这个我们经常用得到。F4 显示属性,Data 数据源,Toolbars 显示工具栏

Insert

插入一些特殊的格式或字体。其中Subreport 特别注意,我们有的时候需要添加侧边栏的时候用得到。BarCode 添加条形码或者二维码。

Report

Report 对应的内容 和点击左边Configure的效果是一样的,都可以添加数据区控制部分。

左侧Configure

点击Configure 我们可以添加我们需要的数据分区,页头页尾,行头行尾,数据区,分组等

右侧Data

此区域设置数据源,系统参数,合计,类型转换。

DataSources 代表我们注册进来的数据表

Variables 常用的 Row# 行号;Page# 当前页;TotalPages#总页数;

Totals 设置合计,计数,平均数,最大值,最小值使用。

Code

添加一些我们特殊处理的代码,示例中我写了一个金额大小写转换的例子

 #region 人民币转换
decimal amount=;
private static string StrTran(string s, string oldv, string newv)
{
return s.Replace(oldv, newv);
} /// <summary>
/// 转换大写人民币
/// </summary>
/// <param name="r"></param>
/// <returns></returns>
public static string RMBToString(decimal r)
{
decimal r1;
string s1 = "零壹贰叁肆伍陆柒捌玖";
string s2 = "分角元拾佰仟万拾佰仟亿拾佰仟万";
string dx, s;
r1 = r;
dx = "";
if (r1 < )
{
r1 *= -;
dx = "负";
}
s = String.Format("{0:f0}", r1 * );
int len = s.Length;
for (int i = ; i < len; i++)
{
dx = dx + s1.Substring(s[i] - '', ) + s2.Substring(len - i - , );
}
dx = StrTran(StrTran(StrTran(StrTran(StrTran(dx, "零仟", "零"), "零佰", "零"), "零拾", "零"), "零角", "零"), "零分", "整");
dx = StrTran(StrTran(StrTran(StrTran(StrTran(dx, "零零", "零"), "零零", "零"), "零亿", "亿"), "零万", "万"), "零元", "元");
if (dx == "整")
return "零元整";
else
return StrTran(StrTran(StrTran(dx, "亿万", "亿零"), "零整", "整"), "零零", "零");
}
#endregion

FastReport 交流群

群   号:554714044

FastReport使用方法(C/S版)的更多相关文章

  1. iTunes制作iPhone手机铃声方法(mac版2017年4月更新)

    iTunes制作iPhone手机铃声方法(mac版2017年4月更新)   跟之前百度出来的不同,我自己使用后写的.     1.首先下载好你需要制作铃声的mp3文件,这里我放在桌面.       2 ...

  2. 推荐学习《组织与管理研究的实证方法(第2版)》中文PDF

    在写文章论文时,会涉及到观点论证,需要掌握一些实证方法. 建议学习<组织与管理研究的实证方法(第2版)>,对管理研究中涉及的方法进行了介绍,例如实验室研究,二手数据的研究,实地研究等,这对 ...

  3. 3D游戏引擎设计 实时计算机图形学的应用方法 第2版 pdf 带索引书签目录

    3D游戏引擎设计  实时计算机图形学的应用方法  第2版 目录 第1章 概述1.1 图形硬件和游戏发展史1.2 本书版本与软件发展史1.3 章节导读 第2章 图形系统2.1 基础知识2.1.1 坐标系 ...

  4. 电子设备的使用方法-第5版(佳明智能腕表小米手机联想轻薄笔记本群晖存储)我的腾讯QQ电子邮箱地址是 595076941@qq.com - 2021年9月5日

      电子设备的使用方法-第5版   (佳明智能腕表小米手机联想轻薄笔记本群晖存储) 2021年9月5日 我的腾讯QQ电子邮箱地址是  595076941@qq.com 前言 大家好,我叫徐晓亮,今天我 ...

  5. FusionChart 水印破解方法(代码版)

    网上一直找不到有关去除水印的方法! 正好做项目要用到这个鬼东西,折腾了一天,总算破解成功,把方法告诉大家. 先看下破解前的效果. 这是个很烦人的东西,而且有一个更加让人烦人的地方, 就是根本无法买!为 ...

  6. C++STL内存管理方法(g++版)

    STL作为C++的经典作品,一直备受人们关注.本文主要介绍STL的内存管理策略. 早期的STL内存管理 第一次接触STL源码是看侯捷先生的<STL源码剖析>,此书通俗易懂,剖析透彻,是极佳 ...

  7. VC2010的破解方法(针对旗舰版)

    VS2010 正式版破解方法详解 全球开发者最为瞩目的Visual Studio 2010开发工具在4月12日正式发布,现为大家制作一个简单的破解教程有两种方法,操作不一样,原都一样(针对旗舰版,其他 ...

  8. Python、PyCharm的安装及使用方法(Mac版)

    上周跟朋友喝咖啡时聊起我想学Python,她恰好也有这个打算,顺便推荐了一本书<编程小白的第1本Python入门书>,我推送到Kindle后,随手翻看了下,用语平实,简洁易懂. 之前在R语 ...

  9. 基于编辑距离来判断词语相似度方法(scala版)

    词语相似性比较,最容易想到的就是编辑距离,也叫做Levenshtein Distance算法.在Python中是有现成的模块可以帮助做这个的,不过代码也很简单,我这边就用scala实现了一版. 编辑距 ...

随机推荐

  1. urllib和requests库

    目录 1. Python3 使用urllib库请求网络 1.1 基于urllib库的GET请求 1.2 使用User-Agent伪装后请求网站 1.3 基于urllib库的POST请求,并用Cooki ...

  2. windows + php7.1 + redis3.1.4

    首先确定PHP版本(MSVC14 x64 NTS) 下载redis扩展 拷贝php ext目录,修改php.ini配置,添加 extension=php_redis.dll 重启apache,确认re ...

  3. Java在dos界面运行java源文件编译成功,但运行虚拟机时出现错误:“找不到或无法加载主类”的问题

    (一)首先检查环境变量配置有没有问题, 1PATH为%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 2CLASSSPATH为.;%JAVA_HOME%\lib\dt.jar; ...

  4. Linux CPU Hotplug CPU热插拔

    http://blog.chinaunix.net/uid-15007890-id-106930.html   CPU hotplug Support in Linux(tm) Kernel Linu ...

  5. mysql explain中的type列含义和extra列的含义

    很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义. 1 type列 官方的说法,说这列表示的是“访问类型”,更通俗一点就是: ...

  6. java测试ATM自助操作系统

    开学第一周系主任安排了一项测试,测试要求:模拟ATM自助取款机用文件进行存储账户信息,密码等,并进行存款取款,转账,查询记录等操作,而且要进行文件的读取与录入. 这是一个ATM自助取款的操作系统,进行 ...

  7. Our Future

    The world is betting on how to win the football game: But I'm betting on how to win your heart: Mayb ...

  8. KAFKA 监控管理界面 KAFKA EAGLE 安装

    概述 Kafka Eagle监控系统是一款用来监控Kafka集群的工具,目前更新的版本是v1.2.3,支持管理多个Kafka集群.管理Kafka主题(包含查看.删除.创建等).消费者组合消费者实例监控 ...

  9. (7)Why 30 is not the new 20

    https://www.ted.com/talks/meg_jay_why_30_is_not_the_new_20/transcript 00:12When I was in my 20s, I s ...

  10. JAVA经典算法40+

    现在是3月份,也是每年开年企业公司招聘的高峰期,同时有许多的朋友也出来找工作.现在的招聘他们有时会给你出一套面试题或者智力测试题,也有的直接让你上机操作,写一段程序.算法的计算不乏出现,基于这个原因我 ...