Não tenho ideia de como poderia fazer um evento no botão relatório onde conseguisse geral um rellatorio mensal de quantos clientes foram adicionado, porem eu tenho o botão deletar que deleta os clientes da tabela, ai não sei como poderia fazer essa contagem mensal!!
Para fazer isso você precisa ter no mínimo uma data de cadastro para o cliente, assim você você consegue fazer um select na sua base contando a quantidade de registros inseridos, cujo a data de cadastro esteja no intervalo do mês corrente.
Entendi vou tentar aqui obrigado !
Então Jonathan, acho que é mais complicado, nesse formulário eu cadastro um cliente que vai emprestar uma sacola e quando ele devolve isso algumas horas depois eu deleto deleto ele com botão excluir! Eu tenho apenas uma tabela no clientes no mysql, então não conseguiria geral o relatório de empréstimos no mês, minha duvida era essa, tenho que fazer uma outra tabela no banco? como poderia resolver da melhor forma será
A ação dessa funcionalidade não é deletar, é devolver. Segue o que o colega falou, trabalhe com datas. Neste caso vai ser gravar a data de devolução e não excluir o registro.
Não faz sentido você excluir o registro na devolução!
Dessa forma você nunca vai ter informação de histórico de empréstimos por exemplo…
Toda vez que o mesmo cliente vir fazer um empréstimo você vai ter que cadastrá-lo de novo?!
Percebe o retrabalho nessa ação ?
Você pode controlar por data do empréstimo/data devolução ou data do empréstimo + status do empréstimo (ativo/concluído).
Então javaflex e Jonathan, seria uma tela igual essa em anexo, porem não consigo fazer a logica, por exemplo coloquei uma jlabel como status ai pensei no botão devolução mas como faria a logica ou teria algo mais pratico a se fazer
Quando o cliente fizer o empréstimo você faz o insert no banco aplicando o status de “ativo” por exemplo, quando ele vier devolver você localiza o registro do empréstimo, seleciona ele e clica no seu botão de devolução, o seu botão de devolução vai executar um update no registro selecionado e alterar o status dele de “ativo” para “concluído”.
O campo onde você vai exibir o staus não influência em nada, pode ser um Label, um radio button, uma comboBox e por aí vai.
A lógica de solução é simples, agora se a sua dificuldade está em como codificar isso, aí já é outra questão.
Entendi, vou quebrar a cabeça aqui no código ver se consigo rsrs
Pensei em uma solução igual a que me falou, acho que não é o mais correto o que eu estou fazendo, mas se der certo tudo bem e também serve para entendimento rsrsrs
crie um campo na banco de dados com nome situacao, onde uso o mesmo botão adicionar cliente ele adiciona o valor 1 de um jcombobox
Para devolver crie um botão devolução com o mesmo código do botão update, mas com apenas atualização para o campo situação da tabela mas esta dando um erro !
// criando método para alterar dados apenas da situação do botão devoluão
private void devolve(){
String sql=“update tbclientes set situacao=? where idcli=?”;
try{
pst=conexao.prepareStatement(sql);
pst.setString(1, cboSituacao.getSelectedItem().toString());
if ((cboSituacao.getSelectedItem().toString().isEmpty())) {
JOptionPane.showMessageDialog(null, "Preencha o campo Situação");
} else {
// Alinha abaixo atualiza a tabela do cliente com os dados do formulario
// A estrutura a baixa confirma a alteração dos dados na tabela
int adicionado = pst.executeUpdate();
if (adicionado > 0) {
JOptionPane.showMessageDialog(null, "Sacola devolvida com sucesso");
// AS linhas abaixo limpa os campos
txtNomecli.setText(null);
txtSacola.setText(null);
txtDocumento.setText(null);
cboPeriodo.setSelectedItem(null);
txtFoneCli.setText(null);
txtCliPesquisar.setText(null);
btnAdicionar.setEnabled(true);
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
Seu update espera 2 parâmetros, situação e id, você só especificou o primeiro.
Informe o segundo parâmetro esperado no pst.
Minha nossa agora deu certo kkkkkkkk obrigado pela ajuda, agora vou tentar fazer o relatorio de cliente…