ireport 分页做交叉报表需求列是星期一,星期二,。。星期天,但是数据中日期不是连续的,查出来的结果是缺

[Jasper使用总结]iReport报表设计-整体介绍(二)
iReport的文件分为两种,一种为.jrxml 源文件(类似.java),一种为.jasper编译文件(类似.class)。我们在ireport里拖拽生成的即为.jrxml文件。而点击预览生成的即为.jasper文件。
说是.jrxml,其实也是一个XML文件,只是这个文件需要符合ireport的xsd格式,而且也可以扩展自己的标签,只是自己定义的标签就不支持拖拽了,除非自己实现它。
通过我们设计的.jrxml,我们可以将任何数据源(比如jdbc,cvs,xml,javabeans,excel等等)一系列的数据,转换为我们想要的格式,导出为HTML/EXCEL/WORD/PDF/FLASH等报表文件。
一、iReport 报表文件-基本属性
report name
Page Width
Page height
Orientation
报表方向,可为横式或竖式,默认为大众的竖式
Left margin
页面左端空白,单位px,默认20px
Right margin
页面右端空白,单位px,默认20px
Top margin
页面顶端空白,单位px,默认20px
Bottom margin
页面底端空白,单位px,默认20px
报表分为几列,默认为一列。
Column Width
每列的宽度
Column space
Print order
打印方式-垂直/水平。默认垂直
Scriptlet class
自定义scriptlet,可在报表生成时自定义一些行为。
Resource bundle
报表所用资源文件,支持国际化
When Resource Missing Type
当资源属性未找到是,值为什么? 可为null,空白,报错,element的key
Query Text
SQL查询语句,也可在DataSet中设置。
The language for the dataset query
SQL语句的类型,也可在DataSet中设置。比如普通SQL,Hibernate,MDX等
Filter Expression
对SQL语句查询的结果,再次进行过滤,用ireport expression 编写,返回类型必须为Boolean类型
Properties
报表所支持的一些额外属性设置
Title on a new page
是否Title单独占用一页
Summary on a new page
是否Summary单独占用一页
Summary with Page Header and Footer
Summary中是否显示Page Header 和 Page Footer
Float column footer
Ignore pagination
是否不分页,整个报表显示在一页中
Column Direction
报表是居左还是居右显示
When No Data
当Main DataSet记录为0时,显示什么内容?可选项为:
1.除Details Band外的所有内容
3.显示NoData Band (可为报表单独定义该band,用于无数据时,进行信息提示)
4.什么都不显示
该报表的expression的类型:可选项为-java,groovy,javascript
Format Factory Class
可自定义Data 和 Number类型等的格式化方案,该类需继承自XX类
可以引用其他包,自定义或第三方等。例如org.myself.utils
二、iReport 内容 - Bands ( 我们的画板 )
整个报表的内容,是由很多的Bands组成的,而我们要做的就是在这些Bands上绘制我们想要的文字,图片,图表,背景等。
其实就相当于我们的画布,只不过这个画板有点多,且每个画板的功能也不同,还有一些属性需要设置,综合配置好这些,才能画一副完整的报表图画出来~
& & a) 每个画板都有3个属性:
Band height
band的高度
Print When Expression
当表达式为TRUE时,才显示该Band
Split Type
可设置当内容超过当前Band高度时,是继续显示一部分,还是在新的一页显示完整内容。 1.Immediate 直接显示不完整信息 2.Prevent 到新的一页显示完整信息 3.Stretch 延伸当前页,显示完整信息
& & &b) 各个画板的功能描述 :
报表的标题,仅显示一次,可设置为单独占一页。 需注意在这里使用variable时,不能设置其Evaluation Time 为 Now,否则为null
Page Header
每页的头部,在每页都会显示一次
Column Header
每列的头部,一般的情况下,我们将表头设置在这里。
XXX Group Header
当报表中存在Group时,才有此band。显示在每个Group的开始位置。有多少个Group显示多少次。一般将Group Name 显示在这里
数据明细,每行数据在这里显示。有多少行数据,显示多少次。
XXX Group Footer
当报表中存在Group时,才有此band。显示在每个Group的结束位置。有多少个Group显示多少次。一般将Group 汇总计算信息 显示在这里
Column Footer
每列的底部,一般的情况下,将整个数据明细汇总信息显示在这里。
Page Footer
每页的底部,在每页都会显示一次
Last Page Footer
最后一页的底部,在最后一页才显示一次。
汇总页,仅在报表最后显示一次,一般将整个报表的汇总信息显示在这里。
当报表查询记录为0时,可设置显示该Band内容。比如可设置其内容为:“当前查询无数据,如有问题请联系XXXX.”
Background
整个报表的背景,比如我们给整个报表设置一个水印效果
二、DataSet
光有画板是不行的,我们还需要颜料,那就是DataSet,也就是数据源。就有了数据,才能开始加工设计。
iReport支持多个DataSet,默认仅有一个Main Data Set。
iReport支持的查询类型也很多,普通SQL,HQL,MDX Query,Json等等。
另外还可以为JavaBean,这样业务逻辑就可以放入Java 的Service里处理了。
、Parameters,Fields
Parameters与Fields都来自于外部。一个是外部传入的参数,一个是根据数据源生成的字段(当然也可以字的自定义Fields)
& & & & Parameters 主要由报表外部传入,它默认已经自带了一些系统参数,例如REPORT_PARAMETERS_MAP,REPORT_DATA_SOURCE,REPORT_MAX_COUNT,REPORT_TIME_ZONE等。另外也可自定义自己的Parameters,比如统计时间段,组织No等业务参数。
Fields 一般由数据源查询SQL自动生成,一般不用管。它对应SQL/JavaBean中查询出个各个字段名称。
四、Variables
Variables类似于方法内部定义的局部变量,方便我们进行计算汇总,以及常量定义等。
& & & & 系统自带几个参数:比如当前Page Number,当前Column Number,总Report Count,总Page Count,总Column Count。通过这些自定义参数,我们可以设置一下特殊样式,比如隔行变色等。
& & & & 另外,我们还可以自定义一些Var,进行Sum,Avg,Count等计算。因内容较多,后面单独总结吧。
五、Elements
画板上可以画啥子东西呢?可以画静态文本,动态文本,JFreeChart图表,Flash图表,HTML5图表,Maps,交叉表,条形码等等各种Elements。甚至我也可以自定义一个组件,用来显示;还可以显示HTML代码;调用JS脚本等。
这里抱怨一下,Chart这种用的JFreeChart的图片效果的图表,是否该废弃了?样子老难看的说~
还有其Charts Pro,Maps Pro,Widgets Pro 3种Flash 报表都是基于Fusionchart实现的,而且是用的免费版Fusionchart,可选择的图表类型实在是太少了...如果能改为FusionChart收费版,功能该多么强大。只能意淫一下了...
& & & & 在4.7以后的版本里出现了HTML5 Charts,估计也是为了弥补Flash Chart方面的不足吗?但是目前来说HTML5 Charts能支持的图表类型也是不多啊
而Spider Chart,还是用的旧的JFreeChart或其自定义实现的一个图片效果的图表,样子要多难看也多难看。(在3.7版本里,甚至都没有这个图表类型,还是自己做了一个插件实现的,效果都比它这个好看。)
好歹是收费版,你不能做的更漂亮,更炫丽,图表类型,功能选择更多一点吗?
还好有了Generic Element和HTML组件,我们可以调用JS,HTML,或Java代码实现自己的组件,但是毕竟要自己动手,而且这样出来的貌似只支持HTML导出呢。
整个报表基本上就是由这些部分组成了,我们要做的就是根据这些组件或元素,画出我们想要的效果。简要介绍总结完毕~ 又进了一小步
本分类共有文章1篇,更多信息详见
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";
/*爱悠闲底部960*75*/
var cpro_id = "u1888128";紫晶幻治 的BLOG
用户名:紫晶幻治
文章数:117
评论数:12
访问量:62108
注册日期:
阅读量:5863
阅读量:12276
阅读量:297830
阅读量:1018360
51CTO推荐博文
ireport制作交叉报表
1.首先我们配置数据源,ireport3.0支持可以直接访问数据,以下我们将以ireport3.0为例完成一个简单的交叉报表。
&&&&& 1.1.配置数据源:选则工具栏中的&数据&-----&&数据源连接&,如下图:
&&&&&&&&&& 在弹出的对话框中我们选则&添加&按钮,选择&数据库 JDBC 连接&,如下图:
配置数据源如下:
点击保存按钮完成数据源的配置。
&&&&&&& 1.2。查询数据:点击工具栏中的数据库按钮:如下:
&在弹出的对话框中输入sql(注:这里根据具体情况而定),点击确定按钮,这样我们的数据就有了,同时,也为我们建好了两个字段:如图:
&&&&&& 1.3。准备工作做好了,我们来添加交叉报表:点击工具栏中的交叉报表按钮,如下图:
&&&& 在summary栏中画出交叉报表,在弹出的对话框中点击&下一步&按钮:如下图
&&& 进入行分组:选择行分组的字段,这里是dept_id
&点击&next&,进入列分组,选择列分组字段,这里是degree
&& 点击&next&进入详细信息部分,选择字段和相应的操作,这里我们选择employee_id字段、count操作。
点击&next&按钮进入选择&添加行分组和列分组统计和显示单元格&,如下图:
在这里我们可以不选择这三条(可以尝试选择和不选择来测试效果),然后点击&finish&按钮完成交叉报表的添加。
注意:当一个crosstab 添加到一个报表中后,会自动在设计窗口中添加一个用来编辑当前crosstab 的tab 页窗&&&
&&&&&&&&&& 口。
1.4。最后我们点击工具栏中的运行按钮,在这里我们选择带有数据库的运行
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)2421人阅读
iReport(6)
近来做报表的时候,有个交叉报表让列头按照指定顺序排序,自己纠结了好久也没找出解决办法,于是乎,本人就开始在网上“大肆”搜索……,还好还好,虽然没找到完整的解决办法,但是通过“前人”们总结的点点滴滴,还是得到了点儿启发,顺理成章的呢,我就又“造”出了下面的这一篇……
本人之前写过一篇有关用iReport制作检查报表的例子,此处也就继续那个例子开始往下说了哈!
报表中通常我们的sql语句是这样写的:selects.student_name_,s.grade_,s.subject_name_ from student s,编译,运行之后,我们会看到如图1的结果,(注意:列头的排序结果是数学、英语、语文)
但是若想让列头的排列顺序是:语文、数学、英语,这要怎么办呢?可能有的人要说了,在sql语句中加个order by语句就ok了,嗯,的确哦,在数据库中是可以的,或许碰巧在您的报表中也会就能得到您想要的结果,但那仅仅是“碰巧”哦,这里我要向大家介绍的是另一种实现您的报表列头排序的方法!
在您的sql语句中动一下“手脚”,写成这样的:
select s.student_name_,s.grade_,
case to_char(s.subject_name_)
when to_char('语文') then to_char('A语文')
when to_char('数学') then to_char('B数学')
when to_char('英语') then to_char('C英语')
end as subject
from student s orderby s.subject_name_& desc,运行的结果如图2所示:
因为报表中显示了多余的字段,所以呢,我们就要想办法把多出来的字符串去掉!如图3点击Crosstab1到交叉报表的页面,单击显示列标题的文本框,在窗体的右侧就会显示该文本框的属性
如图4所示:在属性窗口中找到TextField Expression属性,点击最右边的“…”按钮
如图5.1所示,在黑色光标处写函数substring,结果如图5.2所示,然后单击【确定】
编译,预览的效果如图6所示
至此,就实现了我们想要的功能了!还有一个小问题,不知您看出来没有啦,就是:我添加了A、B、C后,报表就按照指定的顺序出来了,其实呢,iReport是按照首个字符的ASCII码来排序的呢,ok!就这样了!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:216462次
积分:2250
积分:2250
排名:第11555名
原创:61篇
评论:54条
(1)(1)(4)(1)(3)(8)(2)(18)(8)(4)(4)(5)(4) 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
ireport 5.6入门教程之交叉表
下载积分:0
内容提示:ireport 5.6入门教程之交叉表
文档格式:PDF|
浏览次数:18|
上传日期: 16:07:49|
文档星级:
该用户还上传了这些文档
ireport 5.6入门教程之交叉表
官方公共微信}

我要回帖

更多关于 ireport 分页 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信