Fala pessoal, blz?
Bom eu to com uma dúvida. Eu desenvolvi uma aplicação q exibe os relatórios que foram feitos no iReport. Porém os dados que são mostrados nos relatórios veêm de um banco de dados no access q é diariamente atualizado. Se eu for mostrar os relatórios atualizados, tenho q gerar, manualmente, ou seja, compilar os relatórios todos os dias e salvá-los com extensão jrprint.
Gostaria que a partir do programa, já mostrasse os relatórios atualizados.
Uma outra dúvida minha é que não consigo gerar o executável dessa minha aplicação. O código e o erro estão abaixo:
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.*;
import java.sql.*;
import java.util.*;
import javax.swing.JOptionPane;
public class teste_sistema{
private static final String driver ="sun.jdbc.odbc.JdbcOdbcDriver";
private static final String url ="jdbc:odbc:nome_da_fonte_dados";
public static void main (String args[])throws Exception{
char escolha;
StringBuilder st = new StringBuilder();
st.append("Digite:");
st.append("\n1 - Todos os funcionários");
st.append("\n2 - Funcionários Aposentados");
st.append("\n3 - Funcionários Desligados");
st.append("\n4 - Funcionários Novos");
st.append("\n5 - Alterações");
String a = JOptionPane.showInputDialog(null,st);
escolha = a.charAt(0);
switch(escolha)
{
case '1':
try{
Class.forName(driver);
Connection conn = DriverManager.getConnection(url);
Statement stm = conn.createStatement( );
String query = "SELECT MATRICULAN, NOME, CARGO, LOTACAO FROM Empregados ORDER BY LOTACAO";
ResultSet rs = stm.executeQuery( query );
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
HashMap parameters = new HashMap();
/* Preenche o relatório com os dados. Gera o arquivo rel_todos_funcionarios.jrprint */
JasperFillManager.fillReportToFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_todos_funcionarios.jasper", parameters, jrRS);
/* Exporta para o formato PDF */
JasperExportManager.exportReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_todos_funcionarios.jrprint");
/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem a necessidade do .jrprint */
JasperRunManager.runReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_todos_funcionarios.jasper", parameters, jrRS);
/* Visualiza o relatório em formato PDF */
JasperViewer.viewReport("C:/bin/eclipse/plugins/iReport-0.4.1/rel_todos_funcionarios.jrprint", false);
}
catch(SQLException sqlex){sqlex.printStackTrace();}
break;
case '2':
try{
Class.forName(driver);
Connection conn = DriverManager.getConnection(url);
Statement stm = conn.createStatement( );
String query = "SELECT MATRICULAN, NOME, CARGO, LOTACAO FROM Empregados WHERE LOTACAO = 'Aposentado' ORDER BY NOME";
ResultSet rs = stm.executeQuery( query );
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
HashMap parameters = new HashMap();
/* Preenche o relatório com os dados. Gera o arquivo rel_funcionarios_aposentados.jrprint */
JasperFillManager.fillReportToFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_aposentados.jasper", parameters, jrRS);
/* Exporta para o formato PDF */
JasperExportManager.exportReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_aposentados.jrprint");
/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem a necessidade do .jrprint */
JasperRunManager.runReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_aposentados.jasper", parameters, jrRS);
/* Visualiza o relatório em formato PDF */
JasperViewer.viewReport("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_aposentados.jrprint", false);
}
catch(SQLException sqlex){sqlex.printStackTrace();}
break;
case '3':
try{
Class.forName(driver);
Connection conn = DriverManager.getConnection(url);
Statement stm = conn.createStatement( );
String query = "SELECT MATRICULAN, NOME, CARGO, LOTACAO FROM Empregados WHERE LOTACAO = 'Desligado' ORDER BY NOME";
ResultSet rs = stm.executeQuery( query );
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
HashMap parameters = new HashMap();
/* Preenche o relatório com os dados. Gera o arquivo rel_funcionarios_desligados.jrprint */
JasperFillManager.fillReportToFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_desligados.jasper", parameters, jrRS);
/* Exporta para o formato PDF */
JasperExportManager.exportReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_desligados.jrprint");
/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem a necessidade do .jrprint */
JasperRunManager.runReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_desligados.jasper", parameters, jrRS);
/* Visualiza o relatório em formato PDF */
JasperViewer.viewReport("C:/bin/eclipse/plugins/iReport-0.4.1/rel_funcionarios_desligados.jrprint", false);
}
catch(SQLException sqlex){sqlex.printStackTrace();}
break;
case '4':
try{
Class.forName(driver);
Connection conn = DriverManager.getConnection(url);
Statement stm = conn.createStatement( );
String query = "SELECT MATRICULAN, NOME, CARGO, LOTACAO FROM ConsultNovoFuncionario ORDER BY NOME";
ResultSet rs = stm.executeQuery( query );
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
HashMap parameters = new HashMap();
/* Preenche o relatório com os dados. Gera o arquivo rel_novos_funcionarios.jrprint */
JasperFillManager.fillReportToFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_novos_funcionarios.jasper", parameters, jrRS);
/* Exporta para o formato PDF */
JasperExportManager.exportReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_novos_funcionarios.jrprint");
/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem a necessidade do .jrprint */
JasperRunManager.runReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_novos_funcionarios.jasper", parameters, jrRS);
/* Visualiza o relatório em formato PDF */
JasperViewer.viewReport("C:/bin/eclipse/plugins/iReport-0.4.1/rel_novos_funcionarios.jrprint", false);
}
catch(SQLException sqlex){sqlex.printStackTrace();}
break;
case '5':
try{
Class.forName(driver);
Connection conn = DriverManager.getConnection(url);
Statement stm = conn.createStatement( );
String query = "SELECT MATRICULAN, Empregados.NOME as nome_atual, Empregados.CARGO as cargo_atual, Empregados.FUNCAOC as Funcao_atual, Empregados.LOTACAO as lotacao_atual, Empregados.ANDAR as andar_atual, Empregados.SALA as sala_atual, Empregados.AREA as area_atual, EmpregadosAntigo.NOME as nome_antigo, EmpregadosAntigo.CARGO as cargo_antigo, EmpregadosAntigo.FUNCAOC as funcao_antiga, EmpregadosAntigo.LOTACAO as lotacao_antiga, EmpregadosAntigo.ANDAR as andar_antigo, EmpregadosAntigo.SALA as sala_antiga, EmpregadosAntigo.AREA as area_antiga, IIf([Empregados].[NOME]<>[EmpregadosAntigo].[NOME],'SIM') as nome, IIf(Empregados.CARGO<>EmpregadosAntigo.CARGO,'SIM') as cargo, IIf(Empregados.FUNCAOC<>EmpregadosAntigo.FUNCAOC,'SIM') as funcao, IIf(Empregados.LOTACAO<>EmpregadosAntigo.LOTACAO,'SIM') as lotacao, IIf(Empregados.ANDAR<>EmpregadosAntigo.ANDAR,'SIM') as andar, IIf(Empregados.SALA<>EmpregadosAntigo.SALA,'SIM') as sala, IIf(Empregados.AREA<>EmpregadosAntigo.AREA,'SIM') as area FROM ConsultFuncionario ORDER BY Empregados.FUNCAOC";
ResultSet rs = stm.executeQuery( query );
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
HashMap parameters = new HashMap();
/* Preenche o relatório com os dados. Gera o arquivo rel_alteracoes_funcoes.jrprint */
JasperFillManager.fillReportToFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_alteracoes_funcoes.jasper", parameters, jrRS);
/* Exporta para o formato PDF */
JasperExportManager.exportReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_alteracoes_funcoes.jrprint");
/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem a necessidade do .jrprint */
JasperRunManager.runReportToPdfFile("C:/bin/eclipse/plugins/iReport-0.4.1/rel_alteracoes_funcoes.jasper", parameters, jrRS);
/* Visualiza o relatório em formato PDF */
JasperViewer.viewReport("C:/bin/eclipse/plugins/iReport-0.4.1/rel_alteracoes_funcoes.jrprint", false);
}
catch(SQLException sqlex){sqlex.printStackTrace();}
break;
default:
String Erro = "Relatório não existente";
JOptionPane.showMessageDialog(null,Erro,"Erro",1);
System.exit(0);
}
}
}
Erro:
Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRDataSource
Por favor, pessoal, me ajudem.
Obrigado.
Rodrigo