[RESOLVIDO] Relatorio MySql

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.

1 curtida

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…

2 curtidas