[Jasper使用总结]iReport报表设计-整体介绍(二)
来源:互联网 发布:linux新建用户权限 编辑:程序博客网 时间:2024/06/08 15:22
iReport的文件分为两种,一种为.jrxml 源文件(类似.java),一种为.jasper编译文件(类似.class)。我们在ireport里拖拽生成的即为.jrxml文件。而点击预览生成的即为.jasper文件。
说是.jrxml,其实也是一个XML文件,只是这个文件需要符合ireport的xsd格式,而且也可以扩展自己的标签,只是自己定义的标签就不支持拖拽了,除非自己实现它。
通过我们设计的.jrxml,我们可以将任何数据源(比如jdbc,cvs,xml,javabeans,excel等等)一系列的数据,转换为我们想要的格式,导出为HTML/EXCEL/WORD/PDF/FLASH等报表文件。
一、iReport 报表文件-基本属性
当Main DataSet记录为0时,显示什么内容?可选项为:
1.除Details Band外的所有内容
2.空白页
3.显示NoData Band (可为报表单独定义该band,用于无数据时,进行信息提示)
4.什么都不显示
Language该报表的expression的类型:可选项为-java,groovy,javascript Format Factory Class可自定义Data 和 Number类型等的格式化方案,该类需继承自XX类 Imports可以引用其他包,自定义或第三方等。例如org.myself.utils二、iReport 内容 - Bands ( 我们的画板 )
整个报表的内容,是由很多的Bands组成的,而我们要做的就是在这些Bands上绘制我们想要的文字,图片,图表,背景等。
其实就相当于我们的画布,只不过这个画板有点多,且每个画板的功能也不同,还有一些属性需要设置,综合配置好这些,才能画一副完整的报表图画出来~
a) 每个画板都有3个属性:
1.Immediate 直接显示不完整信息
2.Prevent 到新的一页显示完整信息
3.Stretch 延伸当前页,显示完整信息
b) 各个画板的功能描述 :
需注意在这里使用variable时,不能设置其Evaluation Time 为 Now,否则为nullPage Header每页的头部,在每页都会显示一次Column Header每列的头部,一般的情况下,我们将表头设置在这里。XXX Group Header当报表中存在Group时,才有此band。显示在每个Group的开始位置。有多少个Group显示多少次。一般将Group Name 显示在这里Detail数据明细,每行数据在这里显示。有多少行数据,显示多少次。XXX Group Footer当报表中存在Group时,才有此band。显示在每个Group的结束位置。有多少个Group显示多少次。一般将Group 汇总计算信息 显示在这里Column Footer每列的底部,一般的情况下,将整个数据明细汇总信息显示在这里。Page Footer每页的底部,在每页都会显示一次Last Page Footer最后一页的底部,在最后一页才显示一次。Summary汇总页,仅在报表最后显示一次,一般将整个报表的汇总信息显示在这里。No Data当报表查询记录为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导出呢。
整个报表基本上就是由这些部分组成了,我们要做的就是根据这些组件或元素,画出我们想要的效果。简要介绍总结完毕~ 又进了一小步
- [Jasper使用总结]iReport报表设计-整体介绍(二)
- [Jasper使用总结]iReport报表设计-动态列实现
- [Jasper使用总结]iReport报表设计-动态列实现
- Jasper+ireport动态报表学习(二)使用数据库作为数据源进行报表绘制
- [iReport总结3] EBS使用jasper report进行报表开发
- jasper(ireport)报表pdf乱码问题
- Jasper+ireport动态报表学习(一)
- 如何使用iReport 和jasper生成报表(SQL传参数及中文文件名)
- Jasper+ireport动态报表学习(三)javabean作为数据源
- Jasper+ireport动态报表学习(四)javabean ireport 做交叉报表
- Jasperreport+iReport报表设计(二)通用导出页面
- ireport ,jasper,jsp 网页显示报表
- Jasper+ireport开发报表系统常见问题!
- ireport ,jasper,jsp 网页显示报表
- Jasper+ireport开发报表系统常见问题
- 使用ireport设计jasperreport报表模板
- 用ireport设计报表,通过jasper实现pdf导出及打印
- ireport+jasper的使用心得
- Write failed: Broken pipe 是什么错误?怎样解决?
- MID驱动分析之一TP
- 类成员函数作为线程函数
- 智能指针--shared_ptr&&weak_ptr
- 往xml文件中添加元素
- [Jasper使用总结]iReport报表设计-整体介绍(二)
- XCode打包生成ipa文件到越狱设备上安装运行(图文)
- Linux awk 命令 说明
- 怀孕之前膳食的关注事宜?
- 相应恰当布置膳食怀孕之前也可以瘦身
- 怀孕之前膳食几大忌讳
- DB2触发器
- 怀孕之前膳食4大留意
- 用DefaultHandler解析XML的Demo