【问题标题】:spliting rows in crosstab jasper-report在交叉表碧玉报告中拆分行
【发布时间】:2016-01-28 18:29:17
【问题描述】:

我正在使用 jasper-report,我想要生成这份报告

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

public class ChampEtatMaintenanceParNatureIntervention {

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


}

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

【问题讨论】:

  • 您需要提供更多信息(数据源的一些示例,jrxml)无法理解相对于您的不同列的数据来自何处。只需在交叉表单元格中放置两个字段?
  • 我想为每行工作室显示一个车辆类型列表(例如:lourds、legers...),我是否需要添加一个字段 List?不一定是两个字段
  • 这意味着对于每个 TypeVehicule,natureIntervention 的数量

标签: java jasper-reports rows crosstab


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多