加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

报表工具之JasperReports+iReport(4)

发布时间:2020-12-14 17:01:45 所属栏目:大数据 来源:网络整理
导读:? 报表工具之JasperReports+iReport(4) Report Structure 报告的结构本章描述报告的结构,可用的report对象和它们的属性。这基本上是JasperReports的快速参考。1、Expressions 表达式表达式是JasperReports的核心特征。它是一个重要的机制,允许操纵和显示

?报表工具之JasperReports+iReport(4)

Report Structure 报告的结构本章描述报告的结构,可用的report对象和它们的属性。这基本上是JasperReports的快速参考。1、Expressions 表达式表达式是JasperReports的核心特征。它是一个重要的机制,允许操纵和显示报告数据,执行各种计算,自定义报告的外观和报告对象的可视性。1)一个典型的表达式$F{LastName} + " " + $F{LastName}一个JasperReports的表达式是以Java表达式为基础的,再加上一些附加的语法,它允许引用参数、变量和字段等。比如说要引用一个名叫DATA的参数时,语法应为$P{PARAM_NAME}。对变量和字段来说,其引用语法分别为$V{VAR_NAME}和$F{FIELD_NAME}。注意:在JasperReports的groovy脚本语言中,也同样可以用$F,$P,$V引用参数、变量和字段。2)表达式的语法(1)$F{FIELD}? 引用名为FIELD的字段;(2)$V{VAR}??? 引用名为VAR的变量;(3)$P{PARAM}? 引用名为PARAM的参数;(4)$P!{PARAM} 引用名为PARAM的参数;这个特殊的语法仅能用于report的查询中。它允许插入参数的内容到查询字符串中。例如,它能被用于创建一个带通过参数来指定WHERE条件的动态查询。$R{keyName}???? 在resource bundle中检索带keyName关键字的字符串。注意:表达式是用Java或Groovy写成的,这意外着可以用Java强大的功能,如调用方法,允许构建无限复杂的表达式。还要注意,表达式的结果总是一个对象。3)更多的表达式(1)new Integer(Math.max($V{Price1},$V{Price2}))(2)(new SimpleDateFormat("dd/MM/yyyy")).format($F{OrderDate})(3)$F{SpecialOffer}.booleanValue()? $F{SpecialPrice} : $F{Price}2、内建的函数JasperReports提供了一套内建的函数用于report表达式中。这些函数尽管是内建的工具,还是可以在普通操作中执行它。注意:目前这套函数很有限,在未来会得到扩展。1)例:使用内建函数msg("Total cost is {0}",$F{TOTAL})msg("Matched {0} products out of {1}",$F{MATCHED},$P{TOTAL})2)内建的函数(1)String str(String key);从和report相联系的resource bundle中得到给出的key的一个字符串。这个函数的功能和使用$R{key}语法等价。(2)String msg(String pattern,Object arg0);建立一个带给定的pattern和给定参数来指定其格式的java.util.MessageFormat对象。(3)String msg(String pattern,Object arg0,Object arg1);同上;(4)String msg(String pattern,Object arg1,Object arg2);同上。3、Report 报告Report是表现为报告模板的根对象。在报告执行期间,report模板和数据组合成最终的文档。报告的属性有:(1)Report Name 报告名;(2)Units 报告的单位;有:像素Pixels,毫米Millimeters,厘米Centimeters和英寸Inches。(3)Language 报告表达式使用的语言;目前有Java和Groovy两种。(4)Orientation 页的方向;其可能值为水平Protrait和纵向Landscape。(5)Page Width 以报告单位指定的页宽;(6)Page Height 以报告单位指定的页高;(7)Page Size 报告的尺寸,即为page width和page height。(8)Left Margin 以报告单位指定的左边页边距;(9)Right Margin 以报告单位指定的右边页边距;(10)Top Margin 以报告单位指定的顶部页边距;(11)Bottom Margin 以报告单位指定的底部页边距;(12)Column Count 报告中的列数;(13)Column Spacing 以报告单位指定的列边距;(14)Column Width 以报告单位指定的列宽;(15)Print Order 填充列的顺序;有垂直Vertical和水平Horizontal两种。(16)Float Column Footer 浮动列脚,指出是否在列底部或明细表最后或组脚进行打印;(17)Default Font 缺省字体;(18)Default Style 缺省风格;(19)Scriptlet Class 脚本类,它必须是JRAbstractScriptlet类的子类。如果省略,将创建一个JRDefaultScriptlet的实例。(20)Summary New Page 新页的概要;(21)Title New Page 新页的标题;(22)When No Data Print 无数据时的打印,有三个选择:No Pages 表示0页;Blank Page 空白页;All Sections No Detail 除了detail section,其它的都打印。(23)Query 查询,用来检索数据到报告中。(24)Query Language 查询语言,有五个值:SQL 用于JDBC数据源的查询语言;HBM Hibernate用于Hibernate数据源的查询语言;XPath 用于XML数据源的查询语言;EJBQL用于支持Java持久层(Persistence)API的数据源的查询语言;MDX 用于Mondrian数据源的查询语言。(25)Imports java输入的列表,例如:java.util.*和java.text.SimpleDateFormat格式。用于简化report的表达式。(26)Resource Bundle 为report提供了本地的系列字符串。在报告中,本地字符串能用$R{key}引用。(27)When Resource Missing Print 允许自定义引擎在resource bundle中处理丢失的resource。有4种选择:Null 丢失的resource不打印;Empty 丢失的resource为空;Key 用$R{key}指定的key来打印; Error 用错误来中断报告的执行。4、Styles 风格一个report可以定义大量的风格。一旦定义了,它们能和report对象联系起来,为了给各种可视视图提供基本的配置。report允许用模块化的方式来定义模块的风格。风格有相关联的条件风格。条件风格允许当其表达式为真时改变风格。1)风格的属性有:(1)Name 风格名;(2)Parent Style 父风格;(3)Foreground 前景色;(4)Background 背景色;(5)Mode 方式,决定是否带透明度;(6)Pen 画笔 有6种选择:None 无线;1 Point 正常宽度的线;2 Point 中等宽度的线;4 Point 粗线;Dotted 虚线;Thin 细线。(7)Fill 填充;决定对对象进行填充的模式;(8)Box 指定盒子的属性,如边框类型,边框颜色,是否填充。(9)Horizontal Alignment 水平排列;有3种选择:Left 左;Center 中;Right 右。(10)Vertical Alignment 垂直排列;有3种选择:Top 顶;Middle 中;Bottom 底。(11)Scale 比例;指定图像的比例,有3种选择:Clip 尺寸不适合时,多余部分省略;Fill Frame 图像按比例填充进Image对象中;Retain Shape 保留原形状进行填充。(12)Radius 指定矩形边框倒角的弧度;(13)Pattern 用Text Field表达式的值来指定样式;其日期类型的值用java.text.SimpleDataFormat类来定义;其数值型的值用java.text.DecimalFormat来定义。(14)Blank When Null 当Text Field表达式的值为null时显示空白;(15)Line Spacing 线距;有3种选择:Single:单倍线距;1 and 1/2:1.5倍线距;Double:双倍线距。(16)Rotation 旋转;有3种选择:None 不旋转;Left 左旋180度;Right 右旋180度。(17)Styled Text 是一个标志位,用来指定是否text对象包含了已定义风格或规则的text。(18)Font Name 字体名;(19)Font Size 字体的尺寸;(20)Bold 粗体;(21)Italic 斜体;(22)Underline 下划线;(23)Strike Through 通过标准位来取消;(24)PDF Font Name:PDF字体名;(25)PDF Encoding:PDF编码;(26)PDF Embedded是一个标志位,指定是否PDF字体应该嵌入到文档中。2)条件风格的属性:和上面仅有一点点的不同。其不同的属性为:Condition Expression 条件表达式;是一个布尔型的表达式,用于判断是否应用条件表达式。5、Section Properties 节属性Section的种类前面已经讲了,这里只是补充讲述它的属性:(1)Height 以报告的单位指定的section的高度;(2)Print When Expression 是一个布尔表达式,决定是否打印本Section;(3)Split Allowed 一个标志位,指示当Section超过当前页面的尺寸时,是否允许分割它。如果为真,当前Section将迁移到下一页。注意:如果Section在下一页也不适合时,则不管标志位值如何,都会分割它。6、Groups 组一个report可以定义大量的组。组表示决定带相关数据的可视组的表达式名。一旦声明后,组能在报告任意地方使用。一个数据组用一个表达式组来识别。注意:组机制不能完成来自于数据源数据的任何排序。如果想要有序的数据,必须把数据源的数据进行先排序处理。组属性:(1)Name 组名;用于引用组。(2)Expression 表达式;决定report数据的组;(3)Min Height To Start New Page 开始新页的最小高度;(4)Reprint Header On Each Page 一个标志位,指示在每一页的开始处是否重新打印组头;(5)Reset Page Number 重设页数,一个标志位;在组头在新页开始处打印时,是否重新设置页数;(6)Start New Column 一个标志位,是否在新列中总是打印组头;(7)Start New Page 一个标志位,是否在新页中总是打印组头;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读