一、

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,为