Caros amigos, tenho o seguinte problema aqui com um relatório.
Ele funciona normalmente no preview mas qdo tento executa-lo pelo sistema ele nao encontra os
campos que deve buscar apresentando a seguinte mensagem: "Unknown column name: acao ".
A titulo de informação caso isso altere alguma coisa, estou trabalhando neste relatorio com 5 tabelas
todas ligadas normalmente por chaves estrangeiras.
SELECT
processo.`numProcesso` AS numProcesso,
acao.`acao` AS acao,
objeto.`descricao` AS descricao,
orgao.`descricao` AS descricao,
vara.`vara` AS vara,
requerente.`nome` AS nome,
requerido.`razaoSocial` AS razaoSocial,
andamento.`dataAndamento` AS dataAndamento,
andamento.`andamento` AS andamento,
processo.`situacao` AS situacao,
acao.`codAcao` AS acao_codAcao,
orgao.`codOrgao` AS orgao_codOrgao,
vara.`codVara` AS vara_codVara,
objeto.`codObjeto` AS objeto_codObjeto,
processo.`codVara` AS processo_codVara,
processo.`codObjeto` AS processo_codObjeto,
processo.`codOrgao` AS processo_codOrgao,
processo.`codAcao` AS processo_codAcao,
processo.`observacao` AS processo_observacao,
processo.`dt_cadastro` AS processo_dt_cadastro,
ligacao_processo_requerido.`numProcesso` AS ligacao_processo_requerido_numProcesso,
ligacao_processo_requerido.`cnpjRequerido` AS ligacao_processo_requerido_cnpjRequerido,
ligacao_processo_requerente.`numProcesso` AS ligacao_processo_requerente_numProcesso,
ligacao_processo_requerente.`cpfRequerente` AS ligacao_processo_requerente_cpfRequerente,
andamento.`numProcesso` AS andamento_numProcesso
FROM
`acao` acao INNER JOIN `processo` processo ON acao.`codAcao` = processo.`codAcao`
INNER JOIN `objeto` objeto ON processo.`codObjeto` = objeto.`codObjeto`
INNER JOIN `orgao` orgao ON processo.`codOrgao` = orgao.`codOrgao`
INNER JOIN `vara` vara ON processo.`codVara` = vara.`codVara`
INNER JOIN `ligacao_processo_requerente` ligacao_processo_requerente ON processo.`numProcesso` = ligacao_processo_requerente.`numProcesso`
INNER JOIN `ligacao_processo_requerido` ligacao_processo_requerido ON processo.`numProcesso` = ligacao_processo_requerido.`numProcesso`
INNER JOIN `andamento` andamento ON processo.`numProcesso` = andamento.`numProcesso`
INNER JOIN `requerido` requerido ON ligacao_processo_requerido.`cnpjRequerido` = requerido.`cnpj`
INNER JOIN `requerente` requerente ON ligacao_processo_requerente.`cpfRequerente` = requerente.`cpf`
E esta é a Classe que executa o Relatório.
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
public class RelatorioProcesso {
String codigo, situacao;
Conexao conecta = new Conexao();
public RelatorioProcesso(String codigo)
{
try
{
conecta.conecta();
conecta.executeSQL("select * from processo where numProcesso ="+codigo);
JRResultSetDataSource jrRs= new JRResultSetDataSource(conecta.resultset) ;
JasperPrint relatorio = JasperFillManager.fillReport(
"C:/Sistema Dorival/relatorios/relatorioProcesso.jasper",
new HashMap(),jrRs);
JasperViewer.viewReport(relatorio,false);
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null,"Erro ao Exibir Relatório"+ erro);
erro.printStackTrace();
}
}
void setVisible(boolean b) {
throw new UnsupportedOperationException("Not yet implemented");
}
}
Se você for no sei gerenciador do banco e testar este comando
select * from processo limit 30
ele retorna o campo acao, para você?
acho que não aparece por que pelo que percebi do select do report você tem uma tabela acao, e no select que você faz na aplicação você só faz referencia a esta tabela processo
String codigo, situacao;
Conexao conecta = new Conexao();
public RelatorioProcesso(String codigo)
{
try
{
conecta.conecta();
conecta.executeSQL(“select * from processo where numProcesso =”+codigo);
JRResultSetDataSource jrRs= new JRResultSetDataSource(conecta) ; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<aqui é só deixar a conexão
JasperPrint relatorio = JasperFillManager.fillReport(
“C:/Sistema Dorival/relatorios/relatorioProcesso.jasper”,
new HashMap(),jrRs);
JasperViewer.viewReport(relatorio,false);
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null,“Erro ao Exibir Relatório”+ erro);
erro.printStackTrace();
}
}
void setVisible(boolean b) {
throw new UnsupportedOperationException("Not yet implemented");
}