Como atribuir valor para campos do relatorio(IREPORT)
3 respostas
carlosgyn
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.
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:
//Lista com os beans ja populadosListlistaBeans=getListaBeans();//objeto DataSource criado usando os beansJRDataSourceds=newclasse.criada.por.mim.DefaultReportSource(listaBeans);//preenchendo o relatorio. param eh um mapa contendo os parametros para o relatorio (data do dia, por exemplo)JasperPrintp=JasperManager.fillReport(r,param,ds);
esta eh a maneira q eu faco... nao sei se da pra fazer diferente.
teh mais ae!
carlosgyn
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?
"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:
//Lista com os beans ja populadosListlistaBeans=getListaBeans();//objeto DataSource criado usando os beansJRDataSourceds=newclasse.criada.por.mim.DefaultReportSource(listaBeans);//preenchendo o relatorio. param eh um mapa contendo os parametros para o relatorio (data do dia, por exemplo)JasperPrintp=JasperManager.fillReport(r,param,ds);
esta eh a maneira q eu faco... nao sei se da pra fazer diferente.
teh mais ae!
joaobosco
ok.. tenta isto:
//Lista com os beans ja populados ListlistaBeans=getListaBeans();//objeto DataSource criado usando os beans JRDataSourceds=newJRBeanCollectionDataSource(listaBeans);//preenchendo o relatorio. param eh um mapa contendo os parametros para o relatorio (data do dia, por exemplo) JasperPrintp=JasperManager.fillReport(r,param,ds);
eh q eu tava usando uma classe criada aqui na empresa ... :)