Java e Jaspersoft Studio

06/04/2019

13

Galera,
Estou arranhando um pouco em java em um desenvolvimento de um programa para controle de estoque e me deparei com um problema, seguinte ;
Este programa gera um relatório construido no jaspersoft studio com os seguintes critérios : SELECT * FROM tabela WHERE data BETWEEN ‘01/04/2019’ AND ‘03/04/2019’ AND setor = ‘MANUTENÇÃO’
O relatório esta escrito com os parametros para inserção do setor e as datas ( SELECT * FROM baixaepi WHERE setor = $P AND datasaida BETWEEN $P AND $P ), no netbeans está construido o código para gerar o relatório ( private void btGeraREL1ActionPerformed(java.awt.event.ActionEvent evt) {
SimpleDateFormat formato1 = new SimpleDateFormat(“dd/MM/yyyy”);
SimpleDateFormat formato2 = new SimpleDateFormat(“dd/MM/yyyy”);
// Gerando relatorio por periodo
// Exibindo relatorio de MATERIAIS
int resMAT = JOptionPane.showConfirmDialog(null, “Precione SIM para gerar o relatório de materiais do setor selecionado \\n Ou não para cancelar”, “Atenção”,JOptionPane.YES_NO_OPTION);
// Gerando relatório utilizando o framework JasperReports
if (resMAT == JOptionPane.YES_OPTION) {
String set;
set = (String) cbSetorfun.getSelectedItem();
System.out.println(set);
java.util.Date data1 = txPer1.getDate();
java.util.Date data2 = txPer2.getDate();
String dta = formato1.format(data1);
String dtb = formato2.format(data2);
String dt1 = dta;
String dt2 = dtb;
System.out.println(dt1);

String sql = "SELECT * FROM baixaepi WHERE datasaida BETWEEN '"+dt1+"' AND '"+dt2+"' AND setor = '"+set+"'";
// Utilizando a classe Jasperprint
try {
pst = con.prepareStatement(sql);
rs = pst.executeQuery();
JRResultSetDataSource rrs = new JRResultSetDataSource(rs);
JasperPrint remat = JasperFillManager.fillReport("C:/db/saidaepi-setor.jasper",new HashMap(),rrs);
JasperViewer.viewReport(remat,false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Não foi possível acessar os dados solicitados \\n" +
e.getLocalizedMessage());
}
}
}
O problema é que o relatório gera vazio em testes no jaspersoft e no netbeans da Exception com null.
Neste programa utilizo o Sqlite ( E funciona bem tanto na conexão do programa com o banco e na conexão com outros relatórios !) este é o primeiro problema que tenho na emissão de relatórios, o que não entendo é que se eu fizer o teste diretamente no Sqlite funciona.
Responder

Posts

11/04/2019

Luis Ferreira

Olá, devo avisar que tambem sou iniciante, mas ando na luta todos os dias para melhorar. veja se isto resolve.
O jaster retorna sempre vazio quando há erros nos parametros ou parametros vazios.

Se isto resolver diga.

No Jasper faça assim: O relatório esta escrito com os parametros para inserção do setor e as datas ( SELECT * FROM baixaepi WHERE setor = parâmetro em String)

Connection conn = ConnectionFactory.getConnection(); este é um exemplo do meu programa, aqui você mete o seu.
try {
String src = "nome do relatorio.jasper";
HashMap filtro = new HashMap();
filtro.put("parâmetro em String", txtSetor() + " and datasaida BETWEEN " + txtData1 + " and " + txtData2); as datas tem que estar no formato do banco de dados.


JasperPrint print = JasperFillManager.fillReport(src, filtro, conn);

JasperViewer view = new JasperViewer(print, false);

view.setExtendedState( view.MAXIMIZED_BOTH );

view.setVisible(true);


} catch (JRException ex) {
System.out.println("Error "+ex);
}
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira