使用自定义对象列表创建报告的正确方法是什么? 我一直试图在一两天内实现这一目标,但没有任何作用。 我创建了一个自定义JRDataSource和一个创建这种对象的工厂。
以下是DataSource的代码:
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
”字段。有什么想法吗?
答案 0 :(得分:0)
这种方法对我有用: 我创建了一个自定义dataSourceProvider,而不是自定义数据源,并在创建数据源时选择了JRDataSource。 这与IReports独立实用程序相结合,允许我使用我的集合中的样本数据设计报告