发布网友 发布时间:2022-04-24 18:26
共2个回答
热心网友 时间:2023-11-11 13:04
三目运算符啊,ireport支持的,($F{myField}==null) ? "/":$F{myField}。 或者当字段的值为空值时,默认显示的是Null,如果不让它显示null,可以这样设置: 在字段上右击鼠标,选择“Text Field”下的”Blank when null”,将它打上勾就可以了热心网友 时间:2023-11-11 13:05
当然中国上也有解决方案和例子,但不外乎采用JasperReport的Api去操作报表中的元素,从而达到运行时动态生成报表设计的目的。个人认为这不是最好的方法,主要是这些操作JasperReprot元素的api晦涩难懂,总之对于我来说是一件非常崩溃的是(如果你也有采用代码的方式写ui设计的话,相信你也一样感同身受)。 基于这样我给出的是另外一种解决方案,通过分析jasper的报表设计文件jrxml,根据自己的需要采用模板语言生成自己的动态模板,使用自己的动态模型通过填充模板的方式来完成动态报表的生成。 其它不说,附件为源代码(开发环境:eclipse三.三 jdk >=依.陆)。注意: 依.解压,采用eclipse打开,重新把第三的包添加到classpath下( ${dynaJasperProject}/lib/**.jar). 贰.运行ClassPath:TestDynaJasper.java.打开d:/test.pdf可以查看效果。 三.可以改变修改TestDynaJasper.java类,导出不同格式的文件。 四.导出html文件打开后有问题,你可以重新设置自己的报表模板。模板在classpath:nst.report.jasper中国mon.template_贰0依0.四.贰0.jrxml 下面是一些主要的类说明: 依.nst.report.jasper.ext ---外部程序主要抵用该包下面的类接口来使用动态报表功能 贰.DefaultDynaJasperCompiler.java --外部程序交互类,其它接口主要是调用该类来使用动态报表的功能 三.ReportInfo.java ColumInfo.java --外部使用报表模型 关于 报表列的定义,请查看columnInfo中的字段定义。这里特别说明一下几个属性: a)字段类型:可以指定, 表示为date,int,double,str。如果不指定,系统会根据报表数据集合的一个元素(list.get(0)进行判断,如果第一个元素的某些字段为NULL,那么系统会默认为是string类型,在实际中不是string类型的情况下,要进行特别指定。 b) 列长度:可以指定,在不指定的情况下系统会根据字段类型有一个默认长度: 日期类型宽度 吧0 数字类型宽度吧0 字符类型宽度 依50