FastReport单元格合并

FastReport 自带的单元格合并功能为“抑制重复值”,功能真的很弱,还不如不用。网上也有不少解决方案,不过用来用去,都不尽人意。

下面是网上的两个方案:

1、报表脚本中写代码解决:单元格合并

2、修改相关源代码解决:单元格合并

最初我是两种方案结合使用,第1种方案的缺点是很明显的,有时需要写很多的代码,一不小心容易出错;第2种方案也存在问题,似乎只处理第一页的的情况,当有多页时,就乱套了。

由于本人多个软件都是使用fastreport报表控件,随着时间推移,报表越来越多,设计报表也带来了很大的工作量,实在维以忍受。年初开始研究了fastreport的相关源码,目前终于制定了自己的解决方案。

解决原理:

1、建立自己的数据结构,用于保存所有单元格内容、高度、行号、列号;

2、采用两遍报表方式,第一遍记录各个单元格内容及高度,在第二遍之前在自己的数据结构中计算哪些单元格需要合并及合并后各单元格的高度;

3、在第二遍过程当中,设置相应的单元格的高度,合并的单元格第一个设置其高度为合并后的高度,被合并的其它单元格设置为不显示;

对源码修改的单元只有 frxClass.pas 与 frxEngine.pas 单元,修改的代码不是很多,另外添加了一个自己的单元frxMergeCell.pas,用于建立自己的数据结构。

本报表单元格合并有两种方案:

第1种:左边的单元格为父单元格,只有父单元格相同时才合并;

第2种:与左边的单元格无关,只要相同就合并。

有偿提供相关源码,如有需要,请联系QQ:258322672,价格不会很高,主要修改这个东西确实花了点时间,若有购买,后期不管是否与本源码相关的技术,只要知道的都会尽力提供。支持fastreport4.*系列,是否支持fastreport3.*系列未测试。

格式1报表:

格式2报表:

时间: 2024-10-17 17:36:01

FastReport单元格合并的相关文章

DataGridView单元格合并

本文章转载:http://www.cnblogs.com/xiaofengfeng/p/3382094.html 图: 代码就是如此简单 文件下载:DataGridView单元格合并源码

devexpress实现单元格合并以及依据条件合并单元格

1.devexpress实现单元格合并非常的简单,只要设置属性[AllowCellMerge=True]就可以了,实现效果如下图: 2.但是在具体要求中并非需要所有的相同单元格都合并,可能需要其他的条件来控制合并.这个时候我们就需要在事件gridView1_CellMerge中来控制了.下图为根据最后一列判断是否合并单元格的效果图(其中第四列设置为不合并<非必需>,这里只是为了达到一个比较效果.). 3.重要代码: int row1 = e.RowHandle1; int row2 = e.R

关于table动态添加数据 单元格合并 数组合并

var newArr = [ {"BranchID":1,"BranchName":"城二","BranchFullName":"城二分公司","IssueTypeID":101,"IssueTypeName":"宏蜂窝连片弱覆盖","Total":242,"WithoutDemand":139,"

JTable 单元格合并 【转】

单元格合并 一.单元格合并.(1)我们可以使用Jtable的三个方法:getCellRect(),columnAtPoint(),and rowAtPoint().第一个方法返回一个单元格的边界(Rectangle类),第二.三个方法分别返回屏幕指定位置的列和行.为了实现单元格合并,我们需要重载(overwrite)这三个方法. (2)另外我们需要找出渲染Jtable的ComponentUI对象,并且修改它以达到我们的目的. (3)创建新的类记录单元格合并情况的数据模型,它要包涵一个方法来取得单

NPOI 生成Excel (单元格合并、设置单元格样式:字段,颜色、设置单元格为下拉框并限制输入值、设置单元格只能输入数字等)

NPIO源码地址:https://github.com/tonyqus/npoi NPIO使用参考:源码中的 NPOITest项目 下面代码包括: 1.包含多个Sheet的Excel 2.单元格合并 3.设置单元格样式:字段,颜色 4.设置单元格为下拉框并限制输入值 5.设置单元格只能输入数字 // // GET: /Excel/ public ActionResult Write() { var workbook = new HSSFWorkbook();//从流内容创建Workbook对象

SNF快速开发平台MVC-表格单元格合并组件

1.   表格单元格合并组件 1.1.      效果展示 1.1.1.    页面展现表格合并单元格 图 4.1 1.1.2.    导出excel合并单元格 图 4.2 1.2.      调用说明 1.2.1.    表格合并单元格调用说明 首先,要有一个在viewModel中绑定的表格,例如,我们有一个绑定对象为this.grid的表格 我们要在表格的onLoadSuccess事件中添加一个方法 snf.mergeCellsByParentField ("grid", &quo

mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格

mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格 MemberID MemberName FruitName -------------- --------------------- -------------- 1 Al Apple 1 Al Cherry Desired output MemberID MemberName FruitName ----------- -------------- ------------ 1 Al Apple, Cherry

自定义控件:DataGridView 单元格合并和二维表头

DataGridView单元格合并和二维表头应用: //DataGridView绑定数据 DataTable dt = new DataTable(); dt.Columns.Add("1"); dt.Columns.Add("2"); dt.Columns.Add("3"); dt.Columns.Add("4"); dt.Rows.Add("中国", "上海", "5000

修改TreeList单元格格式(实现类似单元格合并效果)

关键点:(1)TreeList中显示的单元格默认不显示上.下.左.右边框,显示的是TreeList自身的行横边框.列纵边框,具体对应TreeList属性中OptionView项下的ShowVertLines.ShowHorzLines两项,将其对应默认值由默认False改为True即可去除行横边框.列纵边框,然后设置怎样的单元格格式显示什么样的单元格格式: (2)在*_CustomDrawNodeCell中修改函数,而不是*_NodeCellStyle中修改,另外需要注意,前者在后者前运行,因此