0

カスタム オブジェクト リストを使用してレポートを作成する正しい方法はどれですか? 私はこれを1日か2日達成しようとしてきましたが、何もうまくいきません。カスタム 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 I added the following expression in IReport designer:という名前のフィールドに注意してください$F{FECHA}。ただし、プレビューすると、IDE は " FECHA" フィールドが見つからなかったと表示します。理由はありますか?

4

1 に答える 1

0

このアプローチはうまくいきました。カスタム データソースの代わりに、カスタム dataSourceProvider を作成し、データソースの作成時に JRDataSource を選択しました。これを IReports スタンドアロン ユーティリティと組み合わせることで、コレクションのサンプル データを使用してレポートをデザインすることができました。

于 2013-01-26T11:37:05.687 に答える