JasperReport e IReport

Boa tarde para todos,

Estou iniciando no JaspeReport e usando iReport.

Estou tendo dificuldade para criar relatórios onde o usuário tenha que passar parametros.

Tipo: Relação de todos os funcionários que nascerão numa determinada data.

alguém tenha algum exemplo pra me auxiliar.

Obigado.

Divino.

da uma olhada aqui, é um tutorial interessante , vale a pena vc dar uma olhada!

Obrigado Brossi,

Mas estou um pouco além deste tutorial.

Fui encarregado de estudar essa parte que envolve relatórios.
Estou bem encaminhado até o ponto onde gera os relatórios.

Mas quero algo mais genérico, algo que facilite a vida do desenvolvedor.
Usando Jasperreports 0.6,4 estou tendo o seguinte problema:

Quero fazer reflexão de atributos de classes e depois compará-los antes de mover para um array bidimensional.

Muito obrigado.

Divino Sérgio Mendes

Exemplo o código:

package datasource;

import javax.swing.table.;
import java.lang.reflect.
;
import attweb.finan.Caixa;
import java.math.BigDecimal;
import java.util.Vector;

public class CustomTableModel2 extends AbstractTableModel{

private String[] columnNames;
private Object[][] data ;
private Caixa caixa = null;

public CustomTableModel2(BigDecimal empresaId) throws Exception {
    Vector vCaixa = Caixa.recuperaCaixasPorEmpresa(empresaId);

    caixa = new Caixa();
    Class classCaixa = caixa.getClass();
    Field[] camposCaixa = classCaixa.getDeclaredFields();
    columnNames = new String[camposCaixa.length];
    
    for (int i = 0; i < camposCaixa.length ; i++) {
        columnNames[i] = camposCaixa[i].getName();
    }
    
    data = new Object[vCaixa.size()][columnNames.length] ;

    for (int i=0; i < vCaixa.size(); i++) {
        caixa = (Caixa) vCaixa.elementAt(i);

        for (int j=0; j < columnNames.length; j++) {
            Method g = caixa.getClass().getMethod(this.buildGetMethodName(camposCaixa[j].getName()), null);

            //if (g.equals()) 
            // NÃO ESTOU CONSEGUINDDO SAIR DAQUI.
            data[i][j] = caixa.getCaixaId();
            data[i][5] = caixa.getDescricao();
        }
    }
}

private String buildGetMethodName(String attrName){return "get" + attrName.substring(0, 1).toUpperCase() + attrName.substring(1, attrName.length());}

public int getColumnCount() {
    return this.columnNames.length;
}

public String getColumnName(int columnIndex) {
    return this.columnNames[columnIndex];
}

public int getRowCount() {
    return this.data.length;
}

public Object getValueAt(int rowIndex, int columnIndex) {
    return this.data[rowIndex][columnIndex];
}

}