| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 09:50:31
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
Ola pessoal,
estou iniciando com JasperReports agora... no ambiente web
Uma pergunta pra galera que ta acostumado com o Jasper:
Qual seria a "melhor" maneira de fazer no seguinte cenario:
tenho um jsp que exibe a ficha de uma pessoa... com Lists de endereços, telefones, fotos, etc... antes de exibir o relatorio eu preciso da uma opção com varios checks, tipo o q ele quer q va pro relatorio ou nao (pelo jeito vo te q montar o xml dinamicamente ne?)
a duvida: eu uso o codigo da pessoa pra montar o sql e passar pro Jasper, ou passo os objetos pra ele (mas pra isso andei pesquinsando eu teria q usar algo como o JRBeanCollectionDataSource certo?)
opinem por favor
vlw
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 10:00:25
|
andreengesoft
JavaChild
![[Avatar]](/images/avatar/a50303d16c89e22c53d45bd5b9fd888b.jpg)
Membro desde: 05/01/2007 11:50:19
Mensagens: 144
Localização: Belo Horizonte - MG mas eu prefiro o nordeste
Offline
|
VO TE MANDAR MEU CÓDIGO PRA VC VER, EU BASICAMENTE USO SQLS E DEPENDENDO DA OPÇÃO MARCADA NA APLICAÇÃO ELE FAZ UM SQL OU OUTRO CASO FOR FALSE FRAGA AI EU ACHO MAIS SIMPLES ASSIM MAS EXISTEM OUTRAS MANEIRAS COMO VC DISSE TB.
// CustomCode-Begin ADDITIONAL Const - execute
// CustomCode-End ADDITIONAL Const - execute
// LockedCode-Begin Generated Var - execute
TelosDtoSet resultSet = new TelosDtoSet();
// LockedCode-End Generated Var - execute
// CustomCode-Begin ADDITIONAL Var - execute
DataSource ds = null;
String formato = "pdf";
Map parametros = new HashMap();
JasperPrint print = null;
String sql;
SimpleDateFormat formatador = new SimpleDateFormat("yyyy-MM-dd");
String dtInicial;
String dtFinal;
dtInicial=formatador.format(criteriaDto.getDtFechInicial());
dtFinal=formatador.format(criteriaDto.getDtFechFinal());
// CustomCode-End ADDITIONAL Var - execute
try {
// CustomCode-Begin ADDITIONAL Processing - execute
try {
ds = (DataSource)TelosApplicationContext.getBean("dataSource");
sql="Select Dtregistroexterno, PessoaCliente.Nome as Cliente, PessoaColaborador.Nome " +
"as Colaborador, Produto.Nome as ProdutoNome, Chamada.Autoid, AtendimentoChamada.Autoid " +
"as AutoIdAtend, ControleExterno, TipoServico.Nome as TipoServicoNome, TempoGasto, DtAbertura, " +
"AtendimentoChamada.CompFechamento, DtFechamento From Chamada Inner Join AtendimentoChamada On " +
"Chamada.AutoId = AtendimentoChamada.Chamada Inner Join Produto on Chamada.Produto=Produto.Autoid " +
"Inner Join TipoServico on AtendimentoChamada.TipoServico=TipoServico.Autoid Inner Join Cliente on " +
"Chamada.Cliente=Cliente.Autoid Inner Join Pessoa as PessoaCliente on Cliente.Pessoa=PessoaCliente.Autoid " +
"Inner Join Colaborador on AtendimentoChamada.Colaborador=Colaborador.Autoid Inner Join Pessoa as PessoaColaborador " +
"on Colaborador.Pessoa=PessoaColaborador.Autoid where Dtfechamento >= '"+dtInicial+"' and Dtfechamento <= '"+dtFinal+"' " +
"and Chamada.Produto="+criteriaDto.getProduto();
if (criteriaDto.getColaborador()!=null)
sql += " and AtendimentoChamada.Colaborador="+criteriaDto.getColaborador();
if (criteriaDto.getCliente()!=null)
sql += " and Chamada.Cliente="+criteriaDto.getCliente();
if (criteriaDto.getCompFecha()!=null)
sql += " and CompFechamento="+criteriaDto.getCompFecha();
if (criteriaDto.getChamado()!=null)
sql += " and Chamada.Autoid="+criteriaDto.getChamado();
if (criteriaDto.getListaChamComControleExt())
{
sql += " and ControleExterno<>''";
}
sql +=" order by Chamada.Autoid, AtendimentoChamada.Autoid";
parametros.put("SQL",sql);
JasperDesign jasperDesign = JRXmlLoader.load("D:\\André Murta\\HelpDesk30\\EDSHDCasoUso\\src\\eds\\helpdesk\\atendchamadas\\RelAtendimentoporChamado.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
print = JasperFillManager.fillReport(jasperReport,parametros, ds.getConnection());
JRExporter exporter = null;
if("html".equalsIgnoreCase(formato)) {
exporter = new JRHtmlExporter();
} else if("rtf".equalsIgnoreCase(formato)) {
exporter = new JRRtfExporter();
} else {
exporter = new JRPdfExporter();
}
String dataAtual = new SimpleDateFormat("dd/MM/yyyy").format(new Date());
String nomeRel = "nome_"+dataAtual+"."+formato;
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
File arquivo = new File("RelAtendimentoporChamado.pdf");
exporter.setParameter(JRExporterParameter.OUTPUT_FILE,arquivo);
exporter.exportReport();
} catch (Exception e) {
e.printStackTrace();
}
// CustomCode-End ADDITIONAL Processing - execute
} finally {
// CustomCode-Begin ADDITIONAL Finally - execute
// CustomCode-End ADDITIONAL Finally - execute
}
return resultSet;
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 10:04:28
|
von.juliano
GUJ Master
![[Avatar]](/images/avatar/efb61dd984183066a8815190a28bd956.jpg)
Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline
|
Da maneira como vc está desenvolvendo sua aplicação, acho que é mais viável utilizar um XML como fonte de dados para o relatório, já que vc vai ter que montá-lo. Ou vc tb poderia popular um Map ou uma List, e passar para o relatório.
|
É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!
Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 10:10:14
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
von.juliano wrote:Da maneira como vc está desenvolvendo sua aplicação, acho que é mais viável utilizar um XML como fonte de dados para o relatório, já que vc vai ter que montá-lo. Ou vc tb poderia popular um Map ou uma List, e passar para o relatório.
[Editado]
se eu tiver q montar esse xml dinamicamente, adeus IReport?
nada a ver o q falei em cima...
ummm... xml no lugar de resultSet?
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 10:21:57
|
von.juliano
GUJ Master
![[Avatar]](/images/avatar/efb61dd984183066a8815190a28bd956.jpg)
Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline
|
O IReport não utiliza apenas resultSet como fonte de dados, vc pode usar um arquivo XML ou algumas das Collections do java. Vc pode criar um XML com os dados selecionados, e à partir dele gerar o relatório com o IReports, desde que os dados que serão impressos estejam no XML, é claro.
|
É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!
Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 10:55:31
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
von.juliano wrote:O IReport não utiliza apenas resultSet como fonte de dados, vc pode usar um arquivo XML ou algumas das Collections do java. Vc pode criar um XML com os dados selecionados, e à partir dele gerar o relatório com o IReports, desde que os dados que serão impressos estejam no XML, é claro.
thx, man =)
mais uma coisa amigo: um relatorio por exemplo de produtos de uma determinada compra, imagino seja um resultSet só, q vai exibir uma lista e paginar a medida q for preenchendo a pagina... agora, se eu precisar montar esse relatorio com varios resultsets? tem como?
exemplo eu teria o rs dos enderecos, o rs dos telefones, o rs das fotos... todos eles relacionados a um codigo...
ai eu teria q montar um layout de relatorio tipo em "grupos", ta ligado? t tipo assim o relatorio teria tipo um cabecalho onde viria nascimento, nome, blablabla informacoes do cara... ai embaixo, viriam tipo outros informações q eu gostaria q tivessem agrupadas, tipo "enderecos do individuo", "telefones do individuo"...
como faço esse agrupamento mano?
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 11:11:15
|
von.juliano
GUJ Master
![[Avatar]](/images/avatar/efb61dd984183066a8815190a28bd956.jpg)
Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline
|
Cara, eu nunca usei o IReport com mais de uma fonte de dados ao mesmo tempo, e não sei se é possível.
Se vc montar apenas um ResultSet, vc consegue fazer facilmente essa parte de agrupamento de dados e layout do relatório. Qualquer tutorial simples mostra como fazer isso. Dá uma olhada aí:
http://www.livramento.yu.com.br/tutoriais/ireport.html
|
É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!
Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 11:24:53
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
putz cara vlw mesmo... mas o link q vc me mandou da apenas umna explanada basica sobre relatorio, mas e apenas um relatorio de produtos...
no meu caso eu preciso dividir tipo "enderecos, telefones", por ae vai...
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 11:41:23
|
von.juliano
GUJ Master
![[Avatar]](/images/avatar/efb61dd984183066a8815190a28bd956.jpg)
Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline
|
A sua dificuldade está em gerar o relatório, ou no layout dele?
|
É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!
Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2007 11:42:21
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
von.juliano wrote:A sua dificuldade está em gerar o relatório, ou no layout dele?
a minha dificuldade tava em axar o termo do q eu queria fazer, mas ja encontrei mano: relatorios com 'subrelatorios' dentro dele =D
thx
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/10/2008 07:55:14
|
miguelbh6
Debugger
![[Avatar]](/images/avatar/2a1be5f04845770c777cd2dcb8730c00.jpg)
Membro desde: 09/09/2008 15:49:42
Mensagens: 68
Offline
|
Fabim, onde vc achou informacoes sobre subrelatorios com Ireport??? to precisando disso, do jeitinhoo que vc ta fazendo.. passar um xml
com subrelatorios.
|
|
|
 |
|
|