Boa tardee… Tenho essa logica para puxar relatorio por data
final CalendarView view2 = new CalendarView();
JLabel lb_terminal = new JLabel("Data Terminal");
JButton button2 = new JButton("Selecione");
content.add(lb_terminal);
content.add(view2);
content.add(button2);
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
conexao con = new conexao();
String dia = view.getText().substring(0, 2); // pega o dia
String mes = view.getText().substring(3, 5); // pega o mes
String ano = view.getText().substring(6,10); // pega o ano no
String dia2 = view2.getText().substring(0, 2); // pega o dia
String mes2 = view2.getText().substring(3, 5); // pega o mes
String ano2 = view2.getText().substring(6,10); // pega o ano no
con.conecta(); // Conecta com o Banco
con.executeSQL(" SELECT nf_saida.nf_venda_id,nf_saida.total_nota,produtos_venda.codigo_nf,produtos_venda.codigo_prod,produtos_venda.nome_produto,produtos_venda.quantidade_vendida,produtos_venda.preco_unit,produtos_venda.preco_venda,nf_saida.data_venda"
+ " FROM nf_saida INNER JOIN produtos_venda ON nf_saida.nf_venda_id = produtos_venda.codigo_nf"
+ " WHERE nf_saida.data_venda BETWEEN "
+ano+"-"+mes+"-"+dia+ " AND "+ano2+"-"+mes2+"-"+dia2);// Executa
// comando
// SQL
} catch (JRException erro) {
JOptionPane.showMessageDialog(null, "deu erro =: " + erro);
System.out.println(erro);
}
}
});
ele deveria puxar inicial e terminal porém quando clico para puxar não vem nada no jasper.. onde estou errando ?
Você tá só executando a SQL, não está fazendo nada com o resultado dela.
Cara, tu tá só fazendo a consulta no banco. Essa consulta retorna uma lista. Você tem que pegar essa lista e preencher o que você quer(tabela,combobox, pagina da web, whatever).
Nem pegando o retorno da consulta você está.
o Código está assim amigo por inteiro … só tirei essa parte pq pensei que ja entenderiam mas está assim amigo
@Override
public void actionPerformed(ActionEvent e) {
try {
String dia = view.getText().substring(0, 2); // pega o dia
String mes = view.getText().substring(3, 5); // pega o mes
String ano = view.getText().substring(6); // pega o ano no
String inicial = ano + "-" + mes + "-" + dia;
String dia2 = view2.getText().substring(0, 2); // pega o dia
String mes2 = view2.getText().substring(3, 5); // pega o mes
String ano2 = view2.getText().substring(6); // pega o ano no
String datFinal = ano2 + "-" + mes2 + "-" + dia2;
con.conecta(); // Conecta com o Banco
con.executeSQL(" SELECT nf_saida.nf_venda_id,nf_saida.total_nota,produtos_venda.codigo_nf,produtos_venda.codigo_prod,produtos_venda.nome_produto,produtos_venda.quantidade_vendida,produtos_venda.preco_unit,produtos_venda.preco_venda,nf_saida.data_venda"
+ " FROM nf_saida"
+ " INNER JOIN produtos_venda ON nf_saida.nf_venda_id = produtos_venda.codigo_nf"
+ " WHERE nf_saida.data_venda BETWEEN "
+inicial + " AND " + datFinal);// Executa
// comando
// SQL
System.out.println(view.getText());
System.out.println(view2.getText());
System.out.println(inicial);
System.out.println(datFinal);
// ResultSet
JRResultSetDataSource jrRS = new JRResultSetDataSource(
con.resultset);
// atributo para procurar o caminho do relatorio tanto como
// dentro
// da aplicação Ide ou no arquivo .jar
// ou executavel
InputStream stream = getClass().getResourceAsStream(
"/br/com/relatorio/Faturament.jasper");
// busca as informações no ResultsET E o caminho do
// relatorio
JasperPrint jasperPrint = JasperFillManager.fillReport(
stream, new HashMap<String, Object>(), jrRS);
// sobe o relatorio
JasperViewer.viewReport(jasperPrint, false);
} catch (JRException erro) {
JOptionPane.showMessageDialog(null, "deu erro =: " + erro);
System.out.println(erro);
}
}
});
Cara,
Você tem que pegar o resultado da consulta, você não está fazendo isso. É como se estive indo no mercado, comprado tudo, deixado as compras la e voltado pra casa. Ai em casa tu pergunta: “cadê as coisas que comprei?” Não estão lá porque você não levou!
Pegue o resultado da consulta:
Lista<Whatever> coisas = consultaDoBanco.listarTudo();
Mas especificamente no seu caso:
ResultSet rs = con.executeQuery("SELECT * FROM TABELA_DE_ITENS)";
while(rs.next()){
//pega o resultado
coisas.add(itemDoresultado);
}
System.out.println(resultado);
O executeQuery já retorna um ResultSet, talvez seja ele que você deva utilizar.
Links para ajudar:
http://javafree.uol.com.br/artigo/1356/Acessando-banco-de-dados-em-Java-PARTE-1.html#ixzz30y9KLBeI