marlonfa
Por favor, peguei a sua explicação sobre design e key do IReport e como estou fazendo o meu primeiro relatório pelo IReport estou cheio de duvidas e espero que vc ou alguem do GUJ
possa me ajudar. O meu problema é que estou tentando imprimir um relatório parecido com uma Nota Fiscal que tem dois parametros(Inteiros) e não consigo sair da mensagem que ele da quando estou emitindo. Mensagem=O documento não contem paginas e vou mostrar a sequencia do meu programa para ver se alguem me ajuda.
Muito obrigado.
1. O Botão de chamada do relatório: quando chamo sempre dá a mensagem que o Documento não contem paginas, é como se ele não fosse no design do IReport para pegar o Select.
private void jBImprimirNFActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (txtId.getText().equals("")|| (txtId.getText().equals("0"))){
msg = " Codigo de Contas a Receber é Obrigotório para Relatório!";
mensagemErro(msg);
txtId.requestFocus();
check_OK=false;
return;
}
CtaReceberDao dao= null;
try {
dao = new CtaReceberDao();
} catch (SQLException e) {
Logger.getLogger(jFOs.class.getName()).log(Level.SEVERE, null, e);
}
try {
listaAreceber = (ArrayList<ContasReceber>) (dao.findbyfiltrochaves(Integer.parseInt(txtIdOs.getText()), Integer.parseInt(txtId.getText()), identificador));
java.sql.Connection con = jdbc.ConnectionFactory.getConnection(
"jdbc:postgresql://localhost:5432/Labo",
"postgres",
"admin9090");
HashMap parametros = new HashMap();
parametros.put("Os",Integer.parseInt(txtIdOs.getText()));
parametros.put(" Nota",Integer.parseInt(txtId.getText()));
System.out.println(" parametros="+parametros);
// Esse print de parametros está mostrando os dois parametros separados por virgula.
// Essas parte com barras são as tentativas que fiz atraves de estudo da internet.
// JasperDesign design;
try {
// design = JasperManager.loadXmlDesign("src/fontes/Relatorios/" + "rptNf.jrxml"); Este loadXML não sei como fazer? e ele não reconhece
// JasperReport jr = JasperCompileManager.compileReport("src/fontes/Relatorios/rptNf.jrxml");
// JasperPrint jp;
// jp = JasperFillManager.fillReport(jr, parametros, con);
JasperPrint jp = JasperFillManager.fillReport("src/fontes/Relatorios/rptNf.jasper", parametros, con);
JasperExportManager.exportReportToPdfFile(jp, "Notafiscal.pdf");
JasperViewer jrv = new JasperViewer(jp, false);
jrv.setVisible(true);
} catch (JRException ex) {
Logger.getLogger(jIFContasReceber.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null," Erro em Printer!");
}
} catch (SQLException ex) {
Logger.getLogger(jFOs.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null," Erro em Geração do Relatório - CtaReceber!");
}
try {
dao.closeConnection();
System.out.println(" passou fechamento do relatorio");
} catch (SQLException e) {
Logger.getLogger(jFOs.class.getName()).log(Level.SEVERE, null, e);
}
}
[b]2. O meu Select do design do Ireport. Quando retiro os parametros e o Where ele imprime todos os registros sem problema.[/b]
SELECT
dentista."id" AS iddentista,
dentista."nome" AS nomedentista,
dentista."cnpjcpf" AS cnpjcpf,
dentista."endereco" AS enderecodentista,
dentista."bairro" AS bairro,
dentista."cidade" AS cidade,
dentista."uf" AS dentista_uf,
dentista."cep" AS dentista_cep,
dentista."numero" AS dentista_numero,
paciente."id" AS idpaciente,
paciente."nome" AS nomepaciente,
protese."id" AS idprotese,
protese."nome" AS protese_nome,
os."iddentista" AS os_iddentista,
os."idpaciente" AS os_idpaciente,
os."id" AS os_id,
fichas."idos" AS fichas_idos,
fichas."id" AS fichas_id,
fichas."idprotese" AS fichas_idprotese,
fichas."preco" AS fichas_preco,
fichas."quantidade" AS qtde,
fichas."valor" AS fichas_valor,
ctareceber."idos" AS idosctareceber,
ctareceber."id" AS ctareceber_id,
ctareceber."valorprevisto" AS valorprevisto,
ctareceber."ano" AS ano,
ctareceber."mes" AS mes,
ctareceber."valorcredito" AS valorcredito,
ctareceber."valordebito" AS valordebito,
dentista."fone" AS fone,
fichas."situacao" AS fichas_situacao
FROM
"public"."dentista" dentista INNER JOIN "public"."os" os ON dentista."id" = os."iddentista"
INNER JOIN "public"."paciente" paciente ON os."idpaciente" = paciente."id"
INNER JOIN "public"."fichas" fichas ON os."id" = fichas."idos"
INNER JOIN "public"."ctareceber" ctareceber ON os."id" = ctareceber."idos"
INNER JOIN "public"."protese" protese ON fichas."idprotese" = protese."id"
WHERE
(ctareceber."idos" = $P{numOs})
and (ctareceber."id" = $P{numNota})
and (fichas."situacao" = 'CONCLUIDA')