SubReport não aparece

8 respostas
M

Daew galera..
a minha duvida é a seguinte..

Eu tenho um relatório onde contém um subrelatório..
na hora de abrir pela aplicação..
ele aparece certinho.. porém o subrelatório não..

na minha classe contém uma query..
e eu passo o JRResultSetDataSource como parametro..
no metodo JasperFillManager junto com o HashMap..

segue minha classe..

public class RelResolCli{
    private static final String dirSubRel = "D:\\Java\\Arquivos\\Assinf\\SubRelResolCli.jasper";
    private static final String dirXRML = "D:\\Java\\Arquivos\\Assinf\\RelResolCli.jrxml";
    private static final String dirjasper = "D:\\Java\\Arquivos\\Assinf\\RelResolCli.jasper";
    private int codigo = 0;
    public void gerarRelatorio() throws ClassNotFoundException, SQLException,
            JRException, Exception  {
        Connection conn = null;
        ConnectionManager manager = ConnectionManager.getInstance();
        conn = manager.getConnection();
        String query = "select * from tabCliente where codigo = ?";
        PreparedStatement stmt = conn.prepareStatement(query);
        stmt.setInt(1, codigo);
        ResultSet rs = stmt.executeQuery();
        JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
        Map parameters = new HashMap();
        parameters.put("SUREPORT", dirSubRel);
        JasperPrint impressao = JasperFillManager.fillReport(dirjasper, parameters, jrRS);
        try {
            JasperViewer viewer = new JasperViewer(impressao, true);
            viewer.setVisible(true);
        } catch(Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
    
    public int getCodigo() {
        return codigo;
    }
    
    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }
    
    public static void main(String[] args) throws JRException, Exception {
        new RelResolCli().gerarRelatorio();
    }
}

se eu passo o conn como parametro..
o subrelatorio aparece..
mas a query não é executada..
ai não me adianta de nada..

alguem tem idéia de como arrumar isso!?:

agradeço desde já.

8 Respostas

M

… alguem!?

keller

Voce já testou a query do seu subreport pra ver se retorna algo ?
Cara é realmente complicado ajudar em um caso desses…

Valeu? Até… :thumbup:
[s]

furutani

Complicado… mostra algum erro?
Já viu esse tópico http://www.guj.com.br/posts/list/24893.java

M

Sim…
o erro que me mostra é esse…

30/03/2006 10:23:45 net.sf.jasperreports.engine.fill.JRFillDataset createDataSource WARNING: The supplied java.sql.Connection object is null.

Eu estou passando o DataSource como parametro…
ao invés do conn…

a query funciona corretamente, porém o subrelatorio não aparece.
eu tenho dois selects
um nu report e outro no subreport

se eu passar o conn como parametro, ele me mostra o subrelatorio
mas ai esta query não funciona,

String query = "select * from tabCliente where codigo = ?";

ai não aparece o cliente selecionado!
pode ver que a query está com um indice, para fazer a busca do cliente específico (Onde mostra as pendencias)…

Bom… vo fuça mais aqui
vamos ver no que dá!

obrigado a atenção!

;]

keller

30/03/2006 10:23:45 net.sf.jasperreports.engine.fill.JRFillDataset createDataSource
WARNING: The supplied java.sql.Connection object is null.

Isso nao te diz nada ? :roll:

Valeu? Até… :thumbup:
[s]

M

Seria pq eu não tou passando o conn como parametro!?
não é!?

e sim o jrRS como parametro!..

furutani

Esse DataSource é obtido por JNDI?
Verifique por que o DataSource está sendo passado null. O problema esta ai

dahenz

Estou com um problema parecido entao mudei o parametro connection para DataSource criando uma classe chamada DSComparativoMedia e implementando o JRDataSource. Existem dois métodos abstratos e criei um chamado createDataSource, criei uma nova conexao apartir dessa classe no iReport.

Criado 27 de março de 2006
Ultima resposta 23 de jul. de 2008
Respostas 8
Participantes 4