Validar dois campos (KM) - Criticar quando o segundo(Km) for igual ou menor que o primeiro - JAVA
2 respostas
Marcio7
Em uma tabela (placa) tem dois campos ‘vchar’ chamado de km_inicial e km_atual.
Ao cadastrar uma placa é informado o km_inicial, não podendo ser mais alterado.
em outra tabela (deslocamento) tenho o campo ‘vchar’ km, onde informo o km atual do veículo, que ao efetuar o registro no banco de dados ‘MySql’ está gravando corretamente o km_atual na tabela (placa).
Estes campos estão formatados como números inteiros.
Não estou conseguindo fazer uma regra que ao informar o km na tabela (deslocamento) seja verificado se o km informado é menor ou igual o km_atual da tabela (placa).
Não está claro a dificuldade. Pelo que entendi, um if seria suficiente, não?
if(km>km_atual){// dá o aviso}
Se o problema é os campos serem vchar (String, no java), basta a conversão:
if(Integer.parseInt(km)>Integer.parseInt(km_atual)){// dá o aviso}
Não sei se há alguma limitação, mas acho que faz mais sentido armazenar o km como inteiro no banco, em vez de vchar. Considere essa alteração.
Abraço.
Marcio7
Sua sugestão ajudou há olhar de uma outra forma o problema que eu supostamente tinha criado.
Alterar os campos vchar para inteiro ficaria um pouco complicado, assim tirei a formatação dos campos em questão.
Criei está regra abaixo, que funcionou perfeitamente:
privatevoidjftKmInicialFocusLost(java.awt.event.FocusEventevt){intplacaAtual=Integer.parseInt(modelPlacasModeloMarca.getModelPlacas().getKmAtual());intdeslocAtual=Integer.parseInt(jftKmInicial.getText());if(placaAtual>=deslocAtual){
JOptionPane.showMessageDialog(this,"KM informado é menor ou igual do Km atual do veículo!");jftKmInicial.setText("");jftKmInicial.requestFocus();}else{
}
}