FastReport单元格合并

原创 2014年07月14日 15:03:45

    FastReport 自带的单元格合并功能为“抑制重复值”,相信用过的都知道,此功能实在太弱了,还不如不用。网上也出现了一些相关的解决方案,有的是直接在报表中写脚本处理,有的是直接修改源码方式解决,不过只要能解决问题,那就是好方案。

    下面是网上的两个方案:

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

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

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

    由于本人多个软件都是使用fastreport报表控件,随着时间推移,报表越来越多,设计报表也带来了很大的工作量,代码过多不利于维护,思来想去,研究了下fastreport的相关源码,最终制定了自己的解决方案。本人采用修改源码的方式,并添加了一个自己的单元才最终解决问题。

    解决原理:

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

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

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

修改的单元只有 frxClass.pas 与 frxEngine.pas 单元,修改的代码不是很多,主要是要建立自己的数据结构稍微复杂点

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

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

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

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

格式1图片:

 格式2图片:

相关文章推荐

FastReport单元格合并之横向合并

FastReport纵向合并请点击这里

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

FastReport单元格合并之横向合并

FastReport纵向合并请点击这里

BCB调用FastReport4合并单元格

注意:需要在控制报表的BCB程序头文件.h中加上类TfrxDBDataSet的头文件 #include "frxCustomDBRTTI.hpp" ,在.cpp文件的头部加上#pragma link ...

FastReport向下合并单元格

  • 2014年07月18日 12:04
  • 428KB
  • 下载

C# 获取Excel中的合并单元格

C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格。在取消合并单元格时需要逐个查找及取消,比较麻烦。这里分享一个简单的方法来识别Excel中的合并单元格,识别这...

excel计算合并单元格所占行数

  • 2017年07月18日 17:02
  • 495KB
  • 下载

gridcontrol单元格合并

  • 2017年03月01日 11:27
  • 8.2MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FastReport单元格合并
举报原因:
原因补充:

(最多只允许输入30个字)