一、
1) jasper单元格合并具体思路:
其实就是通过条件为文本框设置不同的style(是否显示边框来实现)
1)在设置过程中碰到的问题
.)创建style时,必须将style设置为没有边框的,
然后在里面再设置一个当有条件时应该使用的样式,否则不起作用
styles
style
new java.lang.Boolean((($V{count}>1 || $F{plan-merge-count}==-1) && ($F{plan-merge-count}!=null && $F{plan-merge-count}!=0)))
.) 设置边框时属性中Padding and borders 和pen 都要设置
2)jasper中组件绑定数据时对应的路径
.) jasper文件xpath应该写成绝对路径,就是以 /开头
如:/batch-contract-dTO/contract-list/contract-dTO
.) 数据原对应的路径(这个xpath也是写成绝对路径,这个路径与jasper文件的目录(xpath)没有关系,
设置这个路径,是为了设置dataset中对应的field,方便使用时引用)
.) 引用数据原作为数据来源的组件,其对应的路径需要相关对于jasper文件的xpath(如果接下来是
一个llsit,直接相对到其下的dto即可)
((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("contract-dTO/risk-group-info-list/risk-group-dTO/plan-info-list/plan-dTO")
.) table中又嵌套table,其对应的路径是相对于其上一个table的subdataSource的路径
.)table中又嵌套了一个子模板,子模板的subdataSource路径是相对于table的subDataSource的路径
.) 子模板文件对应的xpath该如何设置(既可以设置成相对路径,也可以设置成绝对路径)
总结:
1)添加一个styles样式,设置padding and borders边框,Pen边框的宽度.
在已创建的style下面再创建一个condition style条件样式, 在Condition Expression中添加如下的
boolean,为