IReport动态列.docxVIP

  • 42
  • 0
  • 约 9页
  • 2018-03-27 发布于北京
  • 举报
IReport动态列

交叉报表 一、工具 Ireport 4.5 制作过程 新建一个文件 图2-1 配置数据源 图2-2 3、在Summary中添加一个Crosstab组件(如图)注意Crosstab只能在Summary中添加 图2-3 设置数据源为主表数据,然后下一步 图2-4 设置行显示字段,然后下一步。 图2-5 设置行显示字段 图2-6 其中行列显示字段可以根据自己需求设置Group2或者Group3等。 设置表格主体数据,(这里只能添加一个字段,如需添加更多数据请在交叉列表创建完成之后,在ReportInspector中找到交叉报表的measures,然后右键点击添加) 图2-8 图2-9 设置交叉列表样式 图2-10 对主体交叉报表进行设计(和主表一样)。设计图见图2-11,预览效果见图2-12。 图2-11 图2-12 表中数据设计详见第6点。 交叉报表的排序 在ireport4.5中,交叉报表的排序默认为按首字母排序,如图2-12我们可以看到月份是排序并不是顺序的。 这是我们可以在SQL语句上动些手脚,在查询的结果给它的第一位加上字母ABC…如图2-13 图2-13 这样预览结果就变成了图2-14 图2-14 可以看到其实这也不是我们想要的结果,然后我们可以点击月份进行字段展现控制。如图2-15 图2-15 然后进入Text file Expression设置,如图2-16 图2-16 预览结果如图2-17 图2-17 交叉报表排序(2) 元素(row / column groups)默认是按照ASCII码排序,除此之外它还有一个Comparator exp。(要求是java.util.Comparator的实现类), 步骤1、可以通过实现java.util.Comparator 接口,自己写个比较类: package com.junefsh.utils; import java.util.Comparator; public class JsReportComparator implements ComparatorObject { public int compare(Object o1, Object o2) { } } 其中注意的是compare()方法需要根据自己的需求实现,该方法主要比较的是row/column groups 中的bucket expression 。 步骤2:在我们建的模板中导入新建的类,新添加一个参数,然后在row / column groups 属性Comparator exp.引用我们添加的参数:$P{myOrder} 步骤3:我们要把JsReportComparator 类加载到项目中,以便调试,把该文件打包成jar,在iReport IDE 中 工具-》“选项”-》iReport-classpath 将,jar添加,此后便可调试看效果了

文档评论(0)

1亿VIP精品文档

相关文档