纵向同值单元格的合并

客户要求:对报表的展现格式进行合并如:在报表展现后,要求把相邻值相同的单元格进行合并,这样看数据会更加直观一些,快逸报表支持合并单元格,但只是在报表复杂报表设计" target="_blank" class="quieeLink1">设计时在设计器中进行合并,或者说通过快逸的group函数来实现,但有些单元格要在计算后才能知道,

第一步:建立报表,如图一:

图一

第二步:Api合并单元格

报表展现时要求将最后一列值相同的单元格进行动态合并,下面介绍下该需求的实现方法。

快逸的iReport对象为报表计算后的结果对象,通过对该对象的灵活使用能很好实现该需求:

request.setCharacterEncoding( “GBK” );

//1、读取报表模板

InputStream is = application.getResourceAsStream(“/reportFiles/group.raq”);

ReportDefine rd = (ReportDefine)ReportUtils.read(is);

Context context = new Context();

Engine e = new Engine( rd, context );

IReport report = e.calc();

int startRow,endRow,startCol,endCol;

int i,j,k;

startRow=1;

endRow=1;

startCol=1;

endCol=1;

int rownum=report.getRowCount();

int colnum=report.getColCount();

for(i=1;i

for(j=1;j

Object s1=report.getCell(i,(short)j).getValue();

Object s2=report.getCell(i+1,(short)j).getValue();

if(s1!=null && s1==s2){

startRow=i;

endRow=i+1;

startCol=j;

endCol=j;

// continue;

for(k=i+2;k

System.out.println(“————–”);

Object s3=report.getCell(k,(short)j).getValue();

// System.out.println(“s3==========”+s3.toString()+”kkkk=”+(k));

if(s1==s3){

endRow=k;

}

else{

k–;

System.out.println(“k之 “+(k));

break;

// continue;

}

}

Area area=new Area(startRow,(short)startCol,endRow,(short)endCol);

if(!report.getCell(startRow,(short)startCol).isMerged()){

System.out.println(“startRow=”+(startRow)+”endRow=”+(endRow)+”startCol=”+(startCol)+”endCol=”+(endCol));

ReportUtils.mergeReport(report,area);

}

System.out.println(“合并完成“);

}

}

}

String rptName = “RPT_”+Double.toString(Math.random());

//3、计算报表

request.setAttribute(rptName,report);

%>

” srcType=”defineBean”

needPrint=”yes”

needSaveAsExcel=”yes”

/>

第三步:利用jsp发布报表

JAVA开发一个合并单元格报表,纵向同值单元格的合并相关推荐

  1. java开发一个简单的通讯录

    java开发一个简单的通讯录 ArrayList的综合应用 import java.util.*; public class ContactNote{static Scanner sc=new Sca ...

  2. 如何用java开发一个网站?

    问题:如何用java开发一个网站? 下载了最新的JDK软件.最新的Eclipse.数据库mysql以及tomcat.struts但是不知道怎么连接起来,在数据库连接的时候mysql-connector ...

  3. java linux 管理系统_用Java开发一个本地服务管理软件

    使用Java开发一个本机服务管理程序,能够控制本机Tomcat.Apache服务的开启和关闭,图形界面控制.用户可以自己扩展其他服务,用来学习图形界面编程.多线程.事件响应等都不错. 一.最终界面 先 ...

  4. 编程语言用 Java 开发一个打飞机小游戏(附完整源码)

    编程语言用 Java 开发一个打飞机小游戏(附完整源码) 上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过 ...

  5. dataframe两个表合并_DAXSQLPython实现报表项目存在串行的财务报表合并

       点击"数字化审计",可以关注哦! 开篇啰嗦话 在前文"Dax实战-多年财务报表项目存在串行的合并"中,我为你介绍了多年财务报表合并过程中问题的起因和解决串 ...

  6. java开发页面超链接样式_Web报表中如何设置超链接的样式

    Web报表中如何设置超链接的样式. 超链接是WEB项目中经常会用到的功能,如实现数据钻取,数据详细说明等.在WEB页面中,各种属性的数据是很多的,怎样对有超链接的数据与普通数据进行区别展现,让用户能一 ...

  7. 用Java开发一个停车场系统

    作者:亰 blog.csdn.net/weixin_43951778/article/details/109643951 现开发一个停车系统,用户根据车位停车 1)车主查看现在有无车位(最多100个车 ...

  8. 用java开发一个简单的安卓程序,Android NDK开发简单程序分享(Hello Word!)

    在之前的博客中已经为大家介绍了,如何在win环境下配置DNK程序,本篇我将带大家实现一个简单的Hello jni程序,让大家真正感受一下NDK开发的魅力.这里我们选择使用C+JAVA开发Android ...

  9. Java开发一个家庭收支记账软件

    4.请开发一个家庭收支记账软件 界面及操作过程如下所示: -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 4 退 出 请 ...

  10. 使用java开发一个股票交易及量化投资回测分析系统

    经过近两年的研究和学习,我使用java开发(也使用了部分python,数据源:聚宽)出了一个股票交易及量化投资回测分析系统,将于近期陆续推出系列文章,向大家介绍一下整个开发过程,当整个系列文章都完成后 ...

最新文章

  1. PLSQL基础语法二-流程控制,循环
  2. 如何在ppt下面加入讲解内容_学术展示系列:学术PPT教程(下)内容 讲解
  3. Oracle数据库的视图
  4. html5新特性:异步上传文件
  5. springboot能用python吗_Python与springboot的对接
  6. 用Html 和 Css来实现一个小小案例
  7. 普通函数被类引用为友元函数
  8. POJ-2414 Phylogenetic Trees Inherited 状态压缩,位运算处理集合操作
  9. python的try和except_关于python:修复try和except中的无效语法错误
  10. Python练习-一辆购物车的寂寞都是Alex的错
  11. 修改 xweibo 的memcache代码,让xweibo支持wincache,加快xweibo速度
  12. vue:ali 阿里矢量图库 ico
  13. 阿里云centos7.0安装java环境
  14. 以聚合数据为例,详细说明API接口使用方法
  15. 命令行快速切换到指定路径
  16. (数据结构)二叉树中序遍历
  17. python中开方和平方
  18. Frodo and pillows CodeForces - 760B
  19. WIN2016多用户远程桌面登录(RDPWrapper方案,非远程桌面服务的方案)
  20. 包装类-自动装箱、拆箱

热门文章

  1. 红帽为开发订阅成员提供的免费福利
  2. mybatis --XML 映射配置文件
  3. flume的各个组件及整体工作流程
  4. 约架的节奏?BAT之后 小米加入地图生态资源争夺战
  5. dwz中的table
  6. Spring3开发实战 之 第四章:对JDBC和ORM的支持
  7. 在Style Report中制作主从分级报表
  8. 【转】requests、BeautifulSoup使用总结
  9. 《JAVA与模式》之解释器模式
  10. Bootstrap学习之三:使用排版