Geração de Contratos em PDF

Boa tarde,

Preciso gerar contratos em PDF, usando Java. Estava estudando o JasperReport e iReport, que geram relatórios. Mas acho que não é a melhor solução, pois o meu contrato terá informações provenientes de diversas tabelas, que não podem ser pegas com um único select. E não quero gerar um relatório, mas um contrato.

Gostaria de saber quais soluções existem para se fazer isso com Java.

Obrigado,

André Aloísio Oliveira da Silva

Boa tarde!

O JasperReports lhe permite fazer sub-relatorios(subreports), ou seja, colocar mais de uma query no mesmo relatório. Dê uma lida nisso que com certeza te ajudará e muito.

Não vejo qual problema de se gerar um report (que conceitualmente é qualquer tipo de documento de saída, não somente resumos) para construir um contrato.

Até mais!

Eu dei uma pesquisa sobre essa questão de sub-relatórios. Porém, só vi exemplos de utilização nos quais o sub-relatório tem relação com o relatório principal, por exemplos Livros no relatório principal e Autores no sub-relatório. Gostaria de saber se é possível ter um sub-relatório, cuja tabela de onde provém seus dados não tenha relação com a tabela do relatório principal. Por exemplo, que seus registros fossem mostrados no mesmo relatório, mas em quadros diferentes, por exemplo.

Valeu!

Não tem nenhum problema, você pode encapsular toda sua pesquisa numa Business Class - Relatório (Que utiliza diversos ou se tiver usando uma ferramenta de mapeamento pós relacional, pode fazer de maneira mais fácil com uma única chamada), e usar um Controller como dispatcher da sua entidade- contrato (pojo).

Você vai mandar para o Jasper somente um Map com os atributos, de acordo com o seu contrato, com as propriedades Key - Value do seu pojo.

PS: Resolvi assim a emissão de contrato e impressão de boleto entre outras informações 3 folhas no mesmo arquivo PDF, como todas as informações dinâmicas.

Simplificando o que o nosso amigo Kenobi escreveu.

Pode-se desenvolver três relatórios separados, representando cada quadro do seu relatório pai, totalmente independentes um do outro.

No relatório pai faz-se a chamada a cada um desses três relatórios utilizando o recurso do sub-relatório do iReports.

Caso algum ou todos os relatórios necessitem de algum(ns) parâmetro(s) adicional(is), este(s) pode(m) ser passado(s) através de um objeto Map.

OK?