Ireport! $P{PARAMETROS}

2 respostas
M

Oi, estou com uma dúvida sobre:
PARAMETROS

O problema é o seguinte:

SELECT
     CIDADE."STATUS_CID" AS CIDADE_STATUS_CID,
     CIDADE."UF_CID" AS CIDADE_UF_CID,
     CIDADE."DES_CID" AS CIDADE_DES_CID,
     CIDADE."COD_CID" AS CIDADE_COD_CID
FROM
     "CIDADE" CIDADE
WHERE $P{campo}= $P{valor}
Queria que o meu método informa-se para o IREPORT o campo e o valor que eu quero enviar como parametro para gerar o relatório. Só que ele está dando problema no parametro campo, se eu colocar UF_CID = {valor} ele funciona normal, alguem sabe resolver isso, ou enviar o sql como parametro, pq nem o sql to conseguindo enviar.

Desde já muito obrigado!. :grin:

Em anexo a minha classe que "CONVERSA" com o Ireport.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Relatorio;

import java.awt.BorderLayout;
import java.io.InputStream;
import java.sql.Connection;
import java.util.HashMap;
import javax.swing.JDialog;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.swing.JRViewer;

/**
 *
 * @author Administrador
 */
public class relatorio {

    private Connection conect;

    public JasperPrint criarRelatorio(String relatorio1, String titulo) {
        this.conect = BD.bdConexao.getDBConnection().con;
        JasperPrint relatorio = null;
        JRViewer view = null;

        try {
            HashMap map = new HashMap();
            InputStream arq = getClass().getResourceAsStream("/Relatorio/" + relatorio1 + ".jasper");
            relatorio = JasperFillManager.fillReport(arq, map, conect);

            if (view == null) {
                view = new JRViewer(relatorio);
                DialogRV(view, titulo);
            }

        } catch (Exception e) {
        }
        return relatorio;
    }

    public JasperPrint criarRelatorioParametro(String relatorio1, String Parametro, String valor) {
        this.conect = BD.bdConexao.getDBConnection().con;
        JasperPrint relatorio = null;
        JRViewer view = null;

        try {

            HashMap map = new HashMap();
            map.put(Parametro, valor);
            InputStream arq = getClass().getResourceAsStream("/Relatorio/" + relatorio1 + ".jasper");
            relatorio = JasperFillManager.fillReport(arq, map, conect);

            if (view == null) {
                view = new JRViewer(relatorio);
                DialogRV(view, relatorio1);
            }

        } catch (Exception e) {
        }

        return relatorio;
    }

    public void DialogRV(JRViewer view, String titulo) {
        JDialog dialog = new JDialog();
        dialog.setModal(true);
        dialog.setTitle(titulo);
        dialog.setSize(900, 580);
        dialog.setLayout(new BorderLayout());
        dialog.add(view);
        dialog.setLocationRelativeTo(null);
        dialog.setVisible(true);
    }
}

2 Respostas

J

Cara pra vc mandar o SQL pra iReport vc manda como parametro normal, porem pra vc usar na sua Query dentro do iReport, vc usa com uma exclamação.

EX: $P!{pSQLValorTotal}.

Desta forma você podera utilizar o SQL na sua Query.

Isso resolver seu problema?

H

Cara, não deu certo nao

Exemplo

WHERE UF_CID = SP

WHERE $P!{CAMPO} = $P!{SP} // NAO DAH!
WHERE $P!{CAMPO} = $P{SP} // NAO DAH
$P!{SQL} /// SQL = WHERE UF_CID=SP NAO DAH TMBM.

// TO LOGADO NO OUTRO USUARIO. OK HIBVINY = MITGAN TMBM.

Criado 18 de setembro de 2009
Ultima resposta 18 de set. de 2009
Respostas 2
Participantes 3