Problema com data no iReport

4 respostas
M

Olá, pessoal!!
Estou criando um relatório onde o parâmetro que passo para a consulta é uma data. A consulta é feita direto no iReport. Pois bem, se coloco uma data qualquer a consulta funciona corretamente no iReport, porém quando passo como parâmetro o relatório gera uma página em branco. Veja o código e a consulta abaixo:

package br.com.sstintas.controller;

import java.sql.Connection;
import java.util.Map;

import com.lowagie.text.pdf.PdfLayer;

import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;


public class JasperReportControllerCaixaDiario {
	
	private static JasperReport jr;
	private static JasperPrint jp;
	
	public JasperReportControllerCaixaDiario() {
		super();
	}
	
	public static void geraRelatorioCaixaDiario(Connection c, Map params) {
		
		try {
			jp = JasperFillManager.fillReport("F:/implementacao/sstintas/relatorios/caixaDiario.jasper", params, c);
			JasperExportManager.exportReportToPdfFile(jp, "F:/implementacao/sstintas/relatorios/caixaDiario.pdf");
			//Process p = Runtime.getRuntime().exec("cmd.exe /C F:/implementacao/sstintas/relatorios/relatorioVenda.pdf");
			
			JasperViewer.viewReport(jp, false); 
				
		} catch(Exception ex) {
			ex.printStackTrace();
		}
	}

}
Para chamar o relatório:
btRelatorio.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					//Execução do Relatório diário
					
					Map params = new HashMap();
					
					Date dt = converteData(tfData.getText());
					System.out.println(dt);
					
					params.put("dataCaixa", dt);
					
					JasperReportControllerCaixaDiario.geraRelatorioCaixaDiario(GerenciadorBD.getConexao(), params);
E a consulta feita no iReport
select * from venda, caixa, cliente_juridica where
caixa.venda_id_venda = venda.id_venda and
venda.cliente_juridica_id_cliente_juridica = cliente_juridica.id_cliente_juridica and
caixa.data_caixa = $P!{dataCaixa};

No iReport, na consulta, quando clico no sent to clipboard, aparece a seguinte mensagem: "Please set a default value for the parameter dataCaixa". Isso teria alguma realção?

Aguardo sugestões.
Obrigada

4 Respostas

RenataFA

Faça sua SQL no iReport assim:

select * from venda, caixa, cliente_juridica where
caixa.venda_id_venda = venda.id_venda and
venda.cliente_juridica_id_cliente_juridica = cliente_juridica.id_cliente_juridica and
caixa.data_caixa = $P{dataCaixa};

OBS: Perceba que tirei o “!”

Quando criar o parâmetro para essa data no iReport, crie ele no formato java.util.Date e no Default Value Expression, coloque um valor default (só pra ele não ficar te enxendo e reclamando a falta dele), algo como:

Boa sorte! :lol:
Renata

M

Obrigada pelas dicas. Era isso mesmo!

Só uma dúvida, se vc puder me responder:

No meu relatório qdo o parâmetro é um inteiro utilizo o exclamação e não dá nenhum erro. Gostaria de saber qual a função do exclamação.

Obrigada mais uma vez

J

O ! NÃO coloca aspas ao redor do parâmetro.

M

Valeu Renata e Juliano!!

Obrigada!

Criado 23 de fevereiro de 2007
Ultima resposta 23 de fev. de 2007
Respostas 4
Participantes 3