Login Registre-se
como faço para chamar o Ireport com o Subreport  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
nelson91

JavaC Membro
[Avatar]

Membro desde: 24/03/2014 13:04:18
Mensagens: 5
Localização: São Leopoldo - RS
Offline

Oi Boa Tarde Pessoal!

Sou novo neste fórum e gostaria de participar daqui para frente respondendo perguntas e ajudando pessoas para que os mesmos me ajudem.
Bom, meu problema é o seguinte...

Estou usando o Ireport 5.5 e o NetBeans 7.4 ambos estão instalados separados, mas criei uma pasta para os relatórios salvos do Ireport para dentro do meu projeto do NetBeans que se encontra em "C:\Manutencao-MK\relatorios\......jasper" .

Quero chamar o subReport que está dentro do Ireport(master) na minha programação java, e não esta aparecendo o subReport quando eu chamo só aparece o Ireport(master)!!!

Aqui está meu código da chamada do Ireport....

Gostaria que me ajuda sem de como chamo o subReport.....aguardo respostas

package relatorios;

import java.util.HashMap;
import conexao.Conexao;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import static javax.swing.UIManager.get;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;

public class licencas {

Conexao con = new Conexao();

public licencas() {

con.conecta();
con.executeSQL("SELECT * from licenca");

JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);

try {
HashMap parameters = new HashMap();
parameters.put("$P{SUBREPORT_DIR","listaPC.jasper");//parametro do subReport , meuSubReport
JasperPrint print = JasperFillManager.fillReport("C:/Manutencao-MK/relatorios/listaLicencas.jasper",parameters,jrRS);

JasperViewer jrviewer = new JasperViewer(print, false);
jrviewer.setTitle("SisComp");
jrviewer.setIconImage(new ImageIcon("C:/Manutencao-MK/src/Img/PC.png").getImage());
jrviewer.setVisible(true);

} catch (JRException erro) {
JOptionPane.showMessageDialog(null, erro);

}

}
}
[Thumb - Sem título.png]
 Nome do arquivo Sem título.png [Disk] Download
 Descrição
 Tamanho 180 Kbytes
 Baixado:  444 vez(es)

diegozapelini

Administrador
[Avatar]

Membro desde: 09/03/2011 14:05:50
Mensagens: 64
Localização: Braço do Norte - SC
Offline

No SUBREPORT_DIR tens que passar o caminho completo do subreport...

Diego Zapelini
JavaC - Java Community
www.threeight.com


Javac para Android


[WWW] [MSN]
giliard

JavaC Membro

Membro desde: 15/04/2011 08:57:37
Mensagens: 1
Offline

acredito que seu problema esta na passagem de parametros

parameters.put("$P{SUBREPORT_DIR","listaPC.jasper");//parametro do subReport , meuSubReport

tenta fazer assim

parameters.put("SUBREPORT_DIR","listaPC.jasper");//parametro do subReport , meuSubReport

ve se funciona.
nelson91

JavaC Membro
[Avatar]

Membro desde: 24/03/2014 13:04:18
Mensagens: 5
Localização: São Leopoldo - RS
Offline

Não entendi e tbm não funcionou assim, caso meu codigo está abaixo.

HashMap parametros = new HashMap();
String arquivo = "C:/Manutencao-MK/relatorios/listaLicencas.jasper"; //String arquivo = "<meu master.jasper"


parametros.put("C:/Manutencao-MK/relatorios/listaPC.jasper","><coloco o q?>");

E pelo que você me falou e que entendi, eu teria que coloca o caminho todo do meu SUBREPORT_DIR que seria no caso no meu
1° parametro "C:/Manutencao-MK/relatorios/listaPC.jasper" e no

2° parametro "<coloco o q?>"
nelson91

JavaC Membro
[Avatar]

Membro desde: 24/03/2014 13:04:18
Mensagens: 5
Localização: São Leopoldo - RS
Offline

Não entendi e tbm não funcionou assim, caso meu codigo está abaixo.

HashMap parametros = new HashMap();
String arquivo = "C:/Manutencao-MK/relatorios/listaLicencas.jasper"; //String arquivo = "<meu master.jasper"


parametros.put("C:/Manutencao-MK/relatorios/listaPC.jasper","<coloco o q?>");

E pelo que você me falou e que entendi, eu teria que coloca o caminho todo do meu SUBREPORT_DIR que seria no caso no meu
1° parametro "C:/Manutencao-MK/relatorios/listaPC.jasper" e no

2° parametro "<coloco o q?>
marcosfonceka

JavaC Membro

Membro desde: 30/03/2012 13:21:48
Mensagens: 117
Localização: Mineiros do Tietê/SP
Offline

E tem outro detalhe importante:
Você está passando assim:



Quando na realidade deveria ser assim:



Aquele $P indica um parâmetro do Ireport. Mas lá dentro dele.
Fora, na sua classe Java, você passa apenas "SUBREPORT_DIR"

Aqui no sistema que programo tem um "caminho do relatório", ou seja, uma coluna "String" numa tabela de configurações que mantém o caminho da pasta onde estão os relatórios compilados (os arquivos .jasper gerados como resultado da compilação correta do seu relatório). Bom, com isso você tem de forma configurável isso no sistema. Isso é importante porque você garante que ao implantá-lo num outro computador a letra da unidade de disco pode ser diferente.

Bom... tem outra coisa importante que você precisa se atentar é na hora de fazer o include do sub-relatório dentro do "master". Aparece uma tela um assistente, nele você NÃO PODE marcar a opção de endereçamento que tem um caminho fixo. Marque a que aparece algo mais ou menos assim: "SUBREPORT_DIR"+nomeDoSeuSubRelatorio.jasper.

Qualquer dúvida, pergunta que a gente te ajuda.
Grande abraço!

--
Marcos Roberto da Fonseca
[Email] [MSN]
marcosfonceka

JavaC Membro

Membro desde: 30/03/2012 13:21:48
Mensagens: 117
Localização: Mineiros do Tietê/SP
Offline

E aí amigo.
Tudo bom?

Tem que ficar desse jeito:



Sendo:

"SUBREPORT_DIR" - o nome do parâmetro que vai pro relatório - isso é fixo!
caminhoDoSubRelatorio - É o caminho onde está o arquivo do sub-relatório sem o nome dele por exemplo... se os seu sub-relatório estiver na unidade C:\Relatório. Você passa só C:\Relatório, porque em tempo de execução, o iReport já tem o nome do sub-relatorio seu. Basta informar onde ele tá.

Coloque do jeito que está no código acima e qualquer coisa me avisa.
Grande abraço!

--
Marcos Roberto da Fonseca
[Email] [MSN]
nelson91

JavaC Membro
[Avatar]

Membro desde: 24/03/2014 13:04:18
Mensagens: 5
Localização: São Leopoldo - RS
Offline

Muito Obrigado ai pessoal do fórum, os meus parâmetros do SUBREPORT estão corretos agora, mas não está funcionando o SUB só o MASTER, acho que é meu SQL na inicialização do meu programa java que está errado, mas valeu pela ajuda pessoal, qualquer duvida ha mais eu entrarei em contato

abraço a todos os programadores java, e vamu simbora programa pessoal
nelson91

JavaC Membro
[Avatar]

Membro desde: 24/03/2014 13:04:18
Mensagens: 5
Localização: São Leopoldo - RS
Offline

Oi Di novo pessoal!

Não consegui resolver o problema de geração do subreport, fiz como me falaram do parâmetro, está correto, mas só gera o "master.jasper" as informçaões do sub-relario não aparece

Eu acho que tem alguma coisa a ver com minha query na inicialização do java, mas não sei ja coloque os parâmetros do ireport mas não funiconou, fiz milhares de query diferente e nada!!

Bha pessoal e eu preciso muito dessa geração de relatórios, vou explica como que eu quero que meu programa faça! agora eu coloque 3 sub-relatorios:

1 sub -> para gerar todos os OFFICE "X" de um COMPUTADOR ESPECIFICO
2 sub -> para gerar todos os SISTEMA OPERACIONAL "X" de um COMPUTADOR ESPECIFICO
3 sub -> para gerar todos os ANTI-VIRUS "X" de um COMPUTADOR ESPECIFICO

É que na minha empresa todos os softwares são licenciados e queria muito essa geração de relatórios.

Pessoal, ficaria muito interessado se alguém olha-se meu projeto e me desse força mandando projetos do tipo OO ou ESTRUTURADO com o banco de dados MySQL, posso ajudar se alguém precisar também.

Meu e-mail para contato é: nelsonsouza91@gmail.com
Só especifique no assunto ou no corpo da mensagem de onde é, caso do fórum javac

queria manda meu projeto inteiro zipado com o banco, para que me dessem uma força, mas não estou conseguindo, só to mandando estes 3 arquivos mas me passem emails
para o e-mail acima que mandarei o projeto.

aguardo respostas dos meus parametros de chamada e os e-mails tambem


 Nome do arquivo listaSO.jrxml [Disk] Download
 Descrição listaSO é o subrelatorios de sistemas
 Tamanho 3 Kbytes
 Baixado:  324 vez(es)

 Nome do arquivo licencas.java [Disk] Download
 Descrição é o arquivo java para chamar os relatorios e o sub
 Tamanho 2 Kbytes
 Baixado:  354 vez(es)

 Nome do arquivo listaLicencas.jrxml [Disk] Download
 Descrição listaLicencas é o meu master.jasper
 Tamanho 13 Kbytes
 Baixado:  300 vez(es)

leandro.souzaprata

JavaC Membro
[Avatar]

Membro desde: 04/10/2013 10:35:41
Mensagens: 49
Offline

Não consegui resolver o problema de geração do subreport, fiz como me falaram do parâmetro, está correto, mas só gera o "master.jasper" as informçaões do sub-relario não aparece

tive um problema muito parecido com o seu...

resolvi assim:

1º criei um método de conexão...



2º passei esse método por parâmetro...



Ja tinha tentado varias coisas mas nada deu certo... o sub não aparecia!!!
depois de fazer isso, funcionou perfeitamente aqui...

no meu código estou usando o JRBeanCollectionDataSource(lista), essa parte não precisa ser assim, é que no meu caso eu uso o hibernate... mas o que importa mesmo é o parâmetro parametros.put("REPORT_CONNECTION",Conexao()); ...

espero que te ajude... um abraço!
rafao

JavaC Membro

Membro desde: 16/09/2014 08:01:53
Mensagens: 1
Offline

leandro.souzaprata

Muito obrigado cara! Estava exatamente com o mesmo problema que o seu, foi só passar a conexão que funcionou beleza!! Me ajudou muito, obrigado!!
RobertoMZ

JavaC Membro

Membro desde: 02/01/2017 20:29:07
Mensagens: 1
Offline

leandro.souzaprata meu Heroi. Muito Obrigado
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.9 © JForum Team