Ola pessoal, eu gostaria de saber como faço pra usar a class: “eJRBeanArrayDataSource” do Jasper. Mas especificamente, como faço no ireport, pra pegar os dados vindo do array?
Alguem tem algum exemplo?
Vc jah havia perguntado isso em outro lugar heim … :?
[code] JRExporter exporter;
exporter = new JRPdfExporter();
JasperPrint print;
OutputStream fos = null;
List beans = new ArrayList();
SeuBean seuBean;
seuBean = new seuBean();
seuBean.setProp1("prop1");
beans.add(seuBean);
JRDataSource jrds = new
JRBeanArrayDataSource(beans.toArray());
try{
//Preenche o Relatorio
print = JasperFillManager.fillReport(
"caminhoDoJasper.jasper",
null,
jrds);
//Exporta o Relatorio
fos = new FileOutputStream("c:\tmp\saida.pdf");
exporter.setParameter(
JRExporterParameter.OUTPUT_STREAM,fos);
exporter.setParameter(
JRExporterParameter.JASPER_PRINT,print);
exporter.exportReport();
fos.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(fos!=null)fos.close();
}catch(Exception e){}
}
[/code]
No IReport basta vc criar os parametros manualmente ( devem ser do mesmo tipo e possuir o mesmo nome do Bean )
[quote=“aborges”]Vc jah havia perguntado isso em outro lugar heim … :?
No IReport basta vc criar os parametros manualmente ( devem ser do mesmo tipo e possuir o mesmo nome do Bean )[/quote]
Valeu aborges, desculpe perguntar em dois lugares diferente.
Só mais uma pergunta. Por exemplo no Header bno ireport, vai ter um valo q vai vir do bean, e no detail, ,vai ter outro. minha duvia é a seguinte: Como é feito o loop para gerar o detail, ,isso é feito automatico pelo irepot? O seja, basta eu passar o Array de Bean, dai lá ele interpreta isso?
Deslvupem se eustor perguntando besteira, mas eu spi LEIGO.
Valeu galera :!:
A lista de beans representa seu DataSet… Cada bean da lista representa um registro, como c vc tivesse realmente feito uma query tipo:
Select a,b,c from tabela
Dataset:
a ; b ; c
1 ; 1 ; 1
2 ; 2 ; 2
Sua lista de beans analoga ficaria assim ( onde cada bean possui as propriedades a, b e c):
Lista:
bean;
bean;
bean;
C vc colocar seus itens no Detail do jasper, ele faz o loop sozinha. Porem caso vc queira uma implementação mais sofisticada, vc deve ler o manual e ver o que atende sua necessidade.
Colocar o valor no Header tah me cheirando q vc quer um Group, certo? No IReport dah pra vc implentar isso no Jasper. Dah uma olhada q eh mole,mole !
Tentei a solução acima, mas na hora de gerar o pdf tenho dois campos com valor null ( instanciei e passei dois beans ) .
Tentei criar o relatorio no iReport cirando parâmetros com os mesmos nomes e tipo do bean.
$P{nome}
Preciso de uma conexão no iReport ? Preciso no iReport dizer quel é o bean ? Quando compilo meu relatório, ele gera um arquivo chamado “teste”, e não “teste.jasper”. Isto indica algum problema ?
Obrigado,
Márcio
Já descobri !
não era um $P e sim um $F
Obrigadíssimo e desculpa a amolação,
Márcio
Consegui passar o Arraylist, mas to com outro problema agora
Ta aparecendo todo os dados da list na mesma linha, e a quantidade de vezes dos dados, tipo
13:00 - 1, 17:00 - 1, 21:00 - 1
13:00 - 1, 17:00 - 1, 21:00 - 1
13:00 - 1, 17:00 - 1, 21:00 - 1
quando era para aparecer
13:00 - 1
17:00 - 1
21:00 - 1
ArrayList Fita = new ArrayList();
Código:
JRBeanCollectionDataSource jr = new JRBeanCollectionDataSource(Fita);
Map parameters = new HashMap();
parameters.put("Fita",""+Fita.get(1));
JasperPrint jprint = JasperManager.fillReport("Prog.jasper", parameters, jr);
JasperViewer.viewReport(jprint,false);
mandei errado esta linha, no post, ms o erro eh esse mesmo, problemas
parameters.put("Fita",""+Fita);
Olá.
EU estou tentando usar o JRBeanCollectionDataSource no meu relatorio. Eu até estou conseguindo usar…ele imprime os dados e tal. Mas ele imprime cada objeto,do ArrayList de objetos, em uma página. Eu gostaria que ele imprimisse os dados na mesma pagina.
Vcs sabem como contornar isso?
teteorp,
Você abriu o iReoprt e colocou o campo no lugar certo ? é na faixa Detail.
Márcio
Sim, eu coloquei os campos ($F{}) na banda detail. Mas devido ao fato de meu ArrayList ter 2 objetos ele os colocou em paginas distintas…Eu queria que eles fossem impressos uim embaixo do outro…
[]´s
teteorp,
Quando eu fiz eu passei um HashMap como parâmetro. Cada item do hashMap era um bean correspondente aos campos do detail. Não sei como fazer com ArrayList.
Márcio
Entao…com o HashMap eu ja tenho alguns campos que eu passo. Este eh o segundo parametro do metido fillreport. O que eu estou fazendo eh declarar um JRBeanCollectionDataSource e construindo um objeto como este e passando meu ArrayList como parametro para este construtor.
Entao eu passo o BeanCollection como o terceiro parametro do fillreport. Aí, vc tem que colocar os fields correspondentes com os atributos dos objetos no relatorio. O problema eh que esta vindo com duas páginas…os dados estao sendo impressos de boua.
[]´s
Valeu pela atenção
Ola Galera,
estou tentando fazer o exemplo colocado no topico, mas esta dando um erro, o seguinte erro:
Exception in thread “main” java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
at br.com.relatorio.TesteRelatorioComBean.(TesteRelatorioComBean.java:32)
at br.com.relatorio.TesteRelatorioComBean.main(TesteRelatorioComBean.java:74)
nao sei oq pode ser mas estou mandando meu codigo para quem verem onde eu estou errando.
valew pela forca!!!
abs
[code]
public class TesteRelatorioComBean {
public TesteRelatorioComBean(){
JRExporter jrpdf = new JRPdfExporter();
JasperPrint print;
OutputStream fos = null;
List beans = new ArrayList();
ClienteBean cb = new ClienteBean();
cb.setId_cliente(1);
cb.setNome("Thiago Silva");
beans.add(cb);
JRDataSource jrds = new JRBeanArrayDataSource(beans.toArray());
try{
print = JasperFillManager.fillReport("C:\\desen\\tools\\iReport-1.2.0\\teste_raeal1.jasper", null, jrds);
fos = new FileOutputStream("C:\\desen\\tools\\iReport-1.2.0\\teste_raeal1.pdf");
jrpdf.setParameter(JRExporterParameter.OUTPUT_STREAM, fos);
jrpdf.setParameter(JRExporterParameter.JASPER_PRINT, print);
jrpdf.exportReport();
fos.close();
}
catch (Exception e){
e.printStackTrace();
}
finally{
try{
if(fos != null)
fos.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new TesteRelatorioComBean();
System.out.println("Fim");
}
}[/code]
Galera Blz!
Eu sou iniciante com o Ireport e eu queria saber como fazer pra pegar um arquivo de image via InputStream e colocar no relatorio que estou construindo no Ireport. Alguem pode me dar uma forcinha e me dizer o passo a passo pois tentei configurar e a imagem não aparece.
Desde já obrigado.
[quote=mek]Ola Galera,
estou tentando fazer o exemplo colocado no topico, mas esta dando um erro, o seguinte erro:
Exception in thread “main” java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
at br.com.relatorio.TesteRelatorioComBean.(TesteRelatorioComBean.java:32)
at br.com.relatorio.TesteRelatorioComBean.main(TesteRelatorioComBean.java:74)
nao sei oq pode ser mas estou mandando meu codigo para quem verem onde eu estou errando.
valew pela forca!!!
abs
[code]
public class TesteRelatorioComBean {
public TesteRelatorioComBean(){
JRExporter jrpdf = new JRPdfExporter();
JasperPrint print;
OutputStream fos = null;
List beans = new ArrayList();
ClienteBean cb = new ClienteBean();
cb.setId_cliente(1);
cb.setNome("Thiago Silva");
beans.add(cb);
JRDataSource jrds = new JRBeanArrayDataSource(beans.toArray());
try{
print = JasperFillManager.fillReport("C:\\desen\\tools\\iReport-1.2.0\\teste_raeal1.jasper", null, jrds);
fos = new FileOutputStream("C:\\desen\\tools\\iReport-1.2.0\\teste_raeal1.pdf");
jrpdf.setParameter(JRExporterParameter.OUTPUT_STREAM, fos);
jrpdf.setParameter(JRExporterParameter.JASPER_PRINT, print);
jrpdf.exportReport();
fos.close();
}
catch (Exception e){
e.printStackTrace();
}
finally{
try{
if(fos != null)
fos.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new TesteRelatorioComBean();
System.out.println("Fim");
}
}[/code][/quote]
Para esse erro eu importei(coloquei no classpath/caminho de construção): itext-1.x.x.jar e resolveu
Tmb estou com problemas na geração dos arquivos meu pdf aparece sem anda ele até é criado mas qd verifico está em branco…
Galera, os meus PDF’s estao vindo em branco tambem. Na tag DATAIL esta tudo em branco. Alguem sabe o por que disso. Fiz os exemplos que os colegas postaram neste topico.
Ninguêm tem um turtorial simples do jasper report com ultilizando uma arquitura simples MVC.
Este tópico morreu?
Também gostaria de saber sobre algum tutorialzin…
É por que criei um plano de contas que não será possível montar a partir de querys do banco…
é por que:
Plano de contas possui ArrayList de Grupo.
Grupo possui arrayList de subgrupo
SubGrupo possui arrayList de conta-a-pagar e conta-a-receber.
Fodástico! ;(
Abraços
[quote=mek]Ola Galera,
estou tentando fazer o exemplo colocado no topico, mas esta dando um erro, o seguinte erro:
Exception in thread “main” java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
[/quote]
Tá faltando o iText.jar nas tuas libs, fera!