Como atribuir valor para campos do relatorio(IREPORT)

Ai Galera,
Veja o meu problema, talvez alguém ai já tenha a solução:

1 - No IReport eu fiz a definição dos meu campos(codCliente,NomeCliente…) através de Javabeans DataSource usando uma classe RelPesquisaVO com metodos sets e gets.

2- No servlet que eu quero imprimir o relatório eu estou fazendo o sequinte:
JasperReport relatorio = JasperManager.loadReport("\Relatorios\RelPessoaFisica.jasper");
JRField campos[] = relatorio.getFields();
for (int i=0; i < campos.length; i++){
System.out.println("campo " + i + " "+ campos[i].getName().toString());
}
isto mostra todos os fields do meu relatorio.

3 - O PROBLEMA :
Como posso atribuir valores para estes campos para que sejam mostrados, hoje aparece todos null.

cara… num sei mto bem se eu entendi a sua duvida…

mas eh o seguinte: qdo tu usa o Javabeans DataSource do iReport tu soh diz para o relatorio qual o nome q os fields do relatorio vai ter. Ele olha o bean e cria os fields de acordo com os mehtodos gets do relatorio.
depois tu tem q carregar o relatorio com seus beans (ja populados). Eu uso uma classe q eu criei que implementa a interface
dori.jasper.engine.JRDataSource.
algo assim:

[code]//Lista com os beans ja populados
List listaBeans = getListaBeans();

//objeto DataSource criado usando os beans
JRDataSource ds = new classe.criada.por.mim.DefaultReportSource(listaBeans);

//preenchendo o relatorio. param eh um mapa contendo os parametros para o relatorio (data do dia, por exemplo)
JasperPrint p = JasperManager.fillReport(r, param, ds);[/code]

esta eh a maneira q eu faco… nao sei se da pra fazer diferente.

teh mais ae!

Valeu Bosco e quase isto que eu quero, so q não entendi o sq.

1 - O IReport criou os fields com os metodos get da minha classe.
2 - veja o codigo:

ArrayList list = new ArrayList();
String codCliente = “1”;
String nomeCliente = “Carlos”;
PesquisaVO rel = new PesquisaVO(codCliente,nomeCliente);
list.add(rel);
desta forma eu populei o meu ArrayList com todos os que queria; onde PesquisaVO e minha classe com os gets.
3 - Como posso carregar o relatorio com esta variavél list implementando a interface JRDataSource?

[quote=“joaobosco”]cara… num sei mto bem se eu entendi a sua duvida…

mas eh o seguinte: qdo tu usa o Javabeans DataSource do iReport tu soh diz para o relatorio qual o nome q os fields do relatorio vai ter. Ele olha o bean e cria os fields de acordo com os mehtodos gets do relatorio.
depois tu tem q carregar o relatorio com seus beans (ja populados). Eu uso uma classe q eu criei que implementa a interface
dori.jasper.engine.JRDataSource.
algo assim:

[code]//Lista com os beans ja populados
List listaBeans = getListaBeans();

//objeto DataSource criado usando os beans
JRDataSource ds = new classe.criada.por.mim.DefaultReportSource(listaBeans);

//preenchendo o relatorio. param eh um mapa contendo os parametros para o relatorio (data do dia, por exemplo)
JasperPrint p = JasperManager.fillReport(r, param, ds);[/code]

esta eh a maneira q eu faco… nao sei se da pra fazer diferente.

teh mais ae![/quote]

ok… tenta isto:

[code]//Lista com os beans ja populados
List listaBeans = getListaBeans();

//objeto DataSource criado usando os beans
JRDataSource ds = new JRBeanCollectionDataSource(listaBeans);

//preenchendo o relatorio. param eh um mapa contendo os parametros para o relatorio (data do dia, por exemplo)
JasperPrint p = JasperManager.fillReport(r, param, ds);[/code]

eh q eu tava usando uma classe criada aqui na empresa … :slight_smile:

teh mais! :smiley: