在交叉表中分割行jasper-report

时间:2016-01-27 12:47:45

标签: java jasper-reports rows crosstab

我正在使用jasper-report,我有这个报告我要生成

my report

我在java中创建了一个类,其中我有一个字段natureIntervention显示在列上,行上的工作室和数字用于交叉表中的计数

public class ChampEtatMaintenanceParNatureIntervention {

    private String natureIntervention;
    private String atelier; 
    private String numero;


}

我想要显示的是每一行工作室,一个车辆类型列表(例如:lourds,legers,....)

1 个答案:

答案 0 :(得分:1)

在每条记录上生成包含行组和列组的交叉表时,您需要所有信息。

在您的报告中见

  • 2个行组(工作室和车辆类型)
  • 1列组(电机类型)
  • 交叉表列的值

这表明你的java对象上有以下getter(你作为数据源传递)

public class MyDatasourceClass {    
    public String getAtelier(){.. return ...};
    public String getVehiculeType(){.. return ...};
    public String getMotorType(){.. return ...};
    public String getValue(){.. return ...}; //this maybe is another class
}

您的交叉表组将是

<rowGroup name="atelier" width="150">
    <bucket class="java.lang.String">
        <bucketExpression><![CDATA[$F{atelier}]]></bucketExpression>
    </bucket>
    ... header value....
</rowGroup>

<rowGroup name="vehiculeType" width="150">
    <bucket class="java.lang.String">
        <bucketExpression><![CDATA[$F{vehiculeType}]]></bucketExpression>
    </bucket>
    ... header value....
</rowGroup>

<columnGroup name="motorType" width="150">
    <bucket class="java.lang.String">
        <bucketExpression><![CDATA[$F{motorType}]]></bucketExpression>
    </bucket>
    ... header value....
</columnGroup>