Boa noite a todos estou usando este código,
Ele pega a data inicial e a data final
porem a data inicial e a final é o mesmo dia
Pois estou querendo ver as vendas do mesmo dia.
acontece q eu tenho q aumentar um dia para ver as vendas do dia atual, como eu corrigiria isso???
privatevoidrelatorioDiario(){if(jtData_inicial.getText().equals(" / / ")){JOptionPane.showMessageDialog(this,"Preencha o campo data inicial.");jtData_inicial.requestFocus();}elseif(jtData_final.getText().equals(" / / ")){JOptionPane.showMessageDialog(this,"Preencha o campo data final.");jtData_final.requestFocus();}else{Datedatainicial=null;Datedatafinal=null;try{datainicial=format.parse(jtData_inicial.getText());datafinal=format.parse(jtData_final.getText());}catch(ParseExceptionex){Logger.getLogger(RelatorioFinanceiro.class.getName()).log(Level.SEVERE,null,ex);}if((!jtData_inicial.getText().equals(""))&&(!jtData_final.getText().equals(""))){Stringsql="SELECT venda.data_inc as Data, \n"+" clientes.nome AS Nome,\n"+" usuario.usuario AS Usuário,\n"+" venda.total as Total\n"+"FROM venda\n"+" INNER JOIN clientes ON \n"+" venda.id_cliente = clientes.id \n"+" INNER JOIN usuario ON \n"+" venda.id_usuario = usuario.id \n"+"where venda.data_inc between ? and ?";// perceba as interrogações representando os parametrostry{pst=conexao.prepareStatement(sql);pst.setDate(1,newjava.sql.Date(datainicial.getTime()));// 1 para a primeira interrogação pst.setDate(2,newjava.sql.Date(datafinal.getTime()));// 2 para a segunda interrgaçãors=pst.executeQuery();tblOs.setModel(DbUtils.resultSetToTableModel(rs));}catch(SQLExceptionex){Logger.getLogger(Main.class.getName()).log(Level.SEVERE,null,ex);}catch(NullPointerExceptionex){JOptionPane.showMessageDialog(null," Relatorio não localizado nesta data!");}}}}
Aí passa esses caras como parâmetros pro método de consulta.
P.S: Evite misturar a consulta com elementos do front, no teu método você pega direto os JTextFields e mistura tudo, isso é errado e difícil de manter.
P.S.1: siga os padrões de nomes, o java só prevê uso de underline em nomes de constantes.
M
Maks_Silva
so nao entendi onde eu coloco
Date dataInicial = criaDataComHoraEspecifica(jtData_inicial.getText(), “00:00:00”); //Pode criar uma constante private static final String HORA_ZERO = “00:00:00”;
Date dataFinal = criaDataComHoraEspecifica(jtData_final.getText(), “23:59:59”); //Pode criar uma constante private static final String HORA_ZERO = “23:59:59”;
D
darlan_machado
Veja, como o teu código está uma bagunça total, realmente fica difícil encontrar um local onde pode colocá-lo.
Entende, agora, a importância de um código organizado, separado em partes especializadas em fazer coisas específicas?
Até você corrigir tudo isso e criar um código decente, substitua estas linhas:
ele é um ótimo programador, só o problema é q pra funcionar eu teria q aumentar 1 dia, esse era o erro
mas eu te agradeço pela ajuda top, vou tentar encaixar aqui era isso q eu estava procurando
vou tentar aqui se eu não consegui eu te chamo
D
darlan_machado
Estranho o @staroski colocar uma query numa classe que parece frontend… Não me parece coisa dele.
M
Maks_Silva
Ele me ajudou,
empaquei nao do conta, tenho dificuldade com timestamp
S
staroski
Droga, já estão reconhecendo minha forma de agir!
Lembro de ter ajudado em um outro post onde essa query estava sendo montada com concatenação de String.
Mostrei como parametrizar os java.sql.Date no PreparedStatement.
Mas realmente, eu não faria essas queries no frontend.
S
staroski
Qual a dificuldade exatamente?
Se não explicar, é difícil saber como ajudar.
M
Maks_Silva
aquele código funcionava , mas somente se eu adicionasse 1 dia a mais.
pois o campo data_inc é timestamp
D
darlan_machado1 like
Fera, existe uma grande diferença entre funcionar e estar bom.
Veja, teu notebook pode queimar a tela, vai funcionar, mas não estará bom, não é mesmo?
M
Maks_Silva
é por isso q estou pedindo ajuda se tivesse bom eu nem pedia fera
D
darlan_machado
Cara, não entenda errado.
O que eu estou dizendo é que você precisa organizar as coisas.
Ninguém nasceu sabendo e todo mundo cometeu esses erros.
A questão é que eu espero que você não se contente com o "está funcionando’ e busque o “está ótimo”.
M
Maks_Silva
pois é, não estou me contentando rs
tem um mes q busco no google
eu prefiro sql, q posso manipular, mas se nao de certo tenho outro codigo q funciona perfeito, mas não é em SQL, assim eu ficaria limitado.
M
Maks_Silva
ou entao aumentar 1 dia no segundo campo, mas fica tosco
privatevoidrelatorioDiario(){if(jtData_inicial.getText().equals(" / / ")){JOptionPane.showMessageDialog(this,"Preencha o campo data inicial.");jtData_inicial.requestFocus();}elseif(jtData_final.getText().equals(" / / ")){JOptionPane.showMessageDialog(this,"Preencha o campo data final.");jtData_final.requestFocus();}else{Datedatainicial=null;Datedatafinal=null;try{datainicial=format.parse(jtData_inicial.getText());datafinal=format.parse(jtData_final.getText());}catch(ParseExceptionex){Logger.getLogger(RelatorioFinanceiro.class.getName()).log(Level.SEVERE,null,ex);}if((!jtData_inicial.getText().equals(""))&&(!jtData_final.getText().equals(""))){Stringsql="SELECT venda.data_inc as Data, \n"+" clientes.nome AS Nome,\n"+" usuario.usuario AS Usuário,\n"+" venda.total as Total\n"+"FROM venda\n"+" INNER JOIN clientes ON \n"+" venda.id_cliente = clientes.id \n"+" INNER JOIN usuario ON \n"+" venda.id_usuario = usuario.id \n"+"where venda.data_inc between ? and ?";// perceba as interrogações representando os parametrostry{pst=conexao.prepareStatement(sql);pst.setTimestamp(1,getTimestamp(datainicial,0,0));// 1 para a primeira interrogaçãopst.setTimestamp(2,getTimestamp(datafinal,23,59));// 2 para a segunda interrgaçãors=pst.executeQuery();tblOs.setModel(DbUtils.resultSetToTableModel(rs));}catch(SQLExceptionex){Logger.getLogger(Main.class.getName()).log(Level.SEVERE,null,ex);}catch(NullPointerExceptionex){JOptionPane.showMessageDialog(null," Relatorio não localizado nesta data!");}}}}
M
Maks_Silva
Vc é o kra, perfeito
Que Deus te abençoe Ricardo Staroski grandemente pelo resto da sua vida e te dê a salvação eterna
só isso q eu tenho a oferecer
amém