0

使用自定义对象列表创建报告的正确方法是什么?我一直在尝试实现这一目标一两天,但没有任何效果。我创建了一个自定义 JRDataSource 和一个创建此类对象的工厂。

这是数据源的代码:

public class ViajeDataSource implements JRDataSource
{

private int index;
private ArrayList<Viaje> viajes;

public ViajeDataSource()
{
    this.viajes=new ArrayList<>();
}

@Override
public boolean next() throws JRException 
{
    this.index++;
    return (index<this.viajes.size());
}

@Override
public Object getFieldValue(JRField jrf) throws JRException 
{
    Object value = null;
    Viaje viaje=this.viajes.get(this.index);
    if (jrf.getName().equals("FECHA"))
    {
        return viaje.getFecha();
    }
    switch(jrf.getName())
    {
        case "FECHA":
            value=viaje.getFecha();
            break;
        case "NombrePersona":
            value=viaje.getNombrePersona();
            break;
        case "NombreEmpresa":
            value=viaje.getNombreEmpresa();
            break;
        case "Observacion":
            value=viaje.getObservacion();
            break;
        case "Importe":
            value=viaje.getTarifa();
            break;
        case "Demora":
            value=viaje.getDemora();
            break;
        case "Total":
            value=viaje.getTotal();
            break;
        case "Peaje":
            value=viaje.getPeaje();
            break;
    }
    return value;
}

注意字段名为FECHA 我在IReport设计器中添加了以下表达式:$F{FECHA},但是在预览时,IDE说没有FECHA找到“”字段。任何想法为什么?

4

1 回答 1

0

这种方法对我有用:我创建了一个自定义 dataSourceProvider,而不是自定义数据源,并在创建数据源时选择了 JRDataSource。这与 IReports 独立实用程序相结合,使我能够使用我的集合中的示例数据设计报告

于 2013-01-26T11:37:05.687 回答