terça-feira, 19 de dezembro de 2017

6º Passo - Criar Tela Funcionarios - NetBeans JAVA - XAMPP MySQL

Sistema para Controle de Pedidos de Fast Foods.




Curta ✔ Comente ✔ Compartilhe ✔ Inscreva-se ✔
Material de apoio/Certificado: http://aulaead.com/course/curso-de-java/
Aprenda Java e MySQL de forma prática e descontraída desenvolvendo um Sistema de Controle de Pedidos para Fest Foods " Lanchonetes, Pizzarias, Pastelarias e afins..."
Este Sistema fornece uma base sólida da linguagem de programação Java e do banco de dados MySQL.

Aluno do 6º Periodo do Curso de Analise e Desenvolvimento de Sistemas da Fatec " Arthur de Azevedo" - Mogi Mirim - São Paulo

Este Sistema de Controle de Pedidos de Fast Foods foi desenvolvido na Ide NetBeans:
Download NetBeans: https://netbeans.org/downloads/

Para o Desenvolvimento do Banco de Dados MySql utilizado o Workbench:

O Sistema Gerenciador de Banco de Dados o XAMPP Control Panel:

A Ferramenta de Desenvolvimento de Relatórios foi utilizado o Jaspersoft Studio:

Aconselho que assistam as vídeo-aulas abaixo.
Segue o Link da vídeo aula 17 a 21 do Professor José de Assis, para maior entendimento sobre a IDE NetBeans, onde ele explica boas práticas, convenção de programação para criar a Classe Tela Clientes

Observação: A Tela Funcionários segue a mesma regra da Tela Clientes.

Java-MySql Sistema OS Tela Clientes :
Aula 17:                 https://youtu.be/z_KK-amMTDo
Aula 18:                https://youtu.be/aBIyK14CEys
Aula 19:            https://youtu.be/9ZrJvH790Es
Aula 20:           https://youtu.be/nCP1WNyfEZU
Aula 21:       https://youtu.be/_KSivm3HPWc

ATENÇÃO !!! ANTES DE DAR INICIO NA IDE NETBEANS CRIAR O BANCO DE DADOS

6º Passo Tela Funcionarios na IDE NetBeans








Na IDE NetBeans Criar Classe Tela Funcionario  :



package br.com.lanchonete.telas;


import java.sql.*;
import br.com.lanchonete.dal.ModuloConexao;
import javax.swing.JOptionPane;
// a linha abaixo importa recurso da biblioteca para busca por nome rs2xml.jar
import net.proteanit.sql.DbUtils;

/**
 *
 * @author 0o9iuygtfrdesaq
 */
public class TelaFuncionario extends javax.swing.JInternalFrame {

    /*
   usando variável de conexao DAL
     */
    Connection conexao = null;
    /*
    Criando variáveis especiais para conexao com o banco de dados
    Prepared Statement e ResultSet são framewoks do pacote java.sql
    servem oara preparar e executar as indtruções SQL
     */
    PreparedStatement pst = null;
    ResultSet rs = null;

    /**
     * Creates new form TelaFuncionario
     */
    public TelaFuncionario() {
        initComponents();
        // estabelecendo a conexao com banco de dados sempre neste ponto
        conexao = ModuloConexao.conector();
    }

    // método para adicionar novo funcionario
    private void adicionar() {
        String sql = "insert into tbfuncionarios (nomefunc, endfunc, bairrofunc, cidadefunc, cpffunc, nascfunc, telfunc, emailfunc, celfunc) values(?,?,?,?,?,?,?,?,?)";
        try {
            pst = conexao.prepareStatement(sql);
            pst.setString(1, txtFuncNome.getText());
            pst.setString(2, txtFuncEndereco.getText());
            pst.setString(3, txtFuncBairro.getText());
            pst.setString(4, txtFuncCidade.getText());
            pst.setString(5, txtFuncCpf.getText());
            pst.setString(6, txtFuncDataNasc.getText());
            pst.setString(7, txtFuncFone.getText());
            pst.setString(8, txtFuncEmail.getText());
            pst.setString(9, txtFuncCelular.getText());

            if ((txtFuncNome.getText().isEmpty()) || (txtFuncFone.getText().isEmpty())) {
                JOptionPane.showMessageDialog(null, "Preencha Todos os Campos Obrigatórios (*)");

            } else {

                // a linha abaixo atualiza a tabela de funcionarios com os dados do Formulário
                // a estrutura abaixo é usada para confirmar a inserção de dados na tabel
                int adicionado = pst.executeUpdate();
                // a linha abaixo serve como entendimento da logica.
                //System.out.println(adicionado);
                if (adicionado > 0) {
                    JOptionPane.showMessageDialog(null, "Funcionario Adicionado com Sucesso !!!");
                    // as linhas abaixo limpam os campos
                    
                    txtFuncNome.setText(null);
                    txtFuncEndereco.setText(null);
                    txtFuncBairro.setText(null);
                    txtFuncCidade.setText(null);
                    txtFuncCpf.setText(null);
                    txtFuncDataNasc.setText(null);
                    txtFuncFone.setText(null);
                    txtFuncEmail.setText(null);
                    txtFuncCelular.setText(null);
                }
            }

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    // metodo para pesquisar funcionario pelo telefone com filtro 
    private void pesquisar_cliente() {
        String sql = " select * from tbfuncionarios where nomefunc like ?";
        try {
            pst = conexao.prepareStatement(sql);
            //passando o conteúdo da caixa de pesquisa para o " ? "
            //atenção ao " % " - continuação da String sql
            pst.setString(1, txtFuncPesquisar.getText() + "%");
            rs = pst.executeQuery();
            //a linha abaixo usa a biblioteca rs2xml.jar para preencher a tabela
            tblFuncionarios.setModel(DbUtils.resultSetToTableModel(rs));

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);

        }
    }

    // metodo para setar os campos do formulário com os conteudos da tabela funcionario
    public void setar_campos() {
        int setar = tblFuncionarios.getSelectedRow();
        txtFuncId.setText(tblFuncionarios.getModel().getValueAt(setar, 0).toString());
        txtFuncNome.setText(tblFuncionarios.getModel().getValueAt(setar, 1).toString());
        txtFuncEndereco.setText(tblFuncionarios.getModel().getValueAt(setar, 2).toString());
        txtFuncBairro.setText(tblFuncionarios.getModel().getValueAt(setar, 3).toString());
        txtFuncCidade.setText(tblFuncionarios.getModel().getValueAt(setar, 4).toString());
        txtFuncCpf.setText(tblFuncionarios.getModel().getValueAt(setar, 5).toString());
        txtFuncDataNasc.setText(tblFuncionarios.getModel().getValueAt(setar, 6).toString());
        txtFuncFone.setText(tblFuncionarios.getModel().getValueAt(setar, 7).toString());
        txtFuncEmail.setText(tblFuncionarios.getModel().getValueAt(setar, 8).toString());
        txtFuncCelular.setText(tblFuncionarios.getModel().getValueAt(setar, 9).toString());

        // alinha abaixo desabilata o botão adicionar, isso evita duplicar e cadastrar o memso funcionario.
        btnAdicionar.setEnabled(false);
    }

    // Criando o metodo para alterar dados do funcionario
    private void alterar() {
        String sql = "update tbfuncionarios set nomefunc=?, endfunc=?, bairrofunc=?, cidadefunc=?, cpffunc=?, nascfunc=?, telfunc=?, emailfunc=?,celfunc=? where idfunc=?";
        try {
            pst = conexao.prepareStatement(sql);
            pst.setString(1, txtFuncNome.getText());
            pst.setString(2, txtFuncEndereco.getText());
            pst.setString(3, txtFuncBairro.getText());
            pst.setString(4, txtFuncCidade.getText());
            pst.setString(5, txtFuncCpf.getText());
            pst.setString(6, txtFuncDataNasc.getText());
            pst.setString(7, txtFuncFone.getText());
            pst.setString(8, txtFuncEmail.getText());
            pst.setString(9, txtFuncCelular.getText());
            // obs CliId será o 10 item a ser capturado 
            pst.setString(10, txtFuncId.getText());
            if ((txtFuncNome.getText().isEmpty()) || (txtFuncFone.getText().isEmpty())) {
                JOptionPane.showMessageDialog(null, "Preencha Todos os Campos Obrigatórios (*)");

            } else {

                // a linha abaixo atualiza a tabela de Funcionario com os dados do Formulário
                // a estrutura abaixo é usada para confirmar a alteração de dados na tabel
                int adicionado = pst.executeUpdate();
                // a linha abaixo serve como entendimento da logica.
                //System.out.println(adicionado);
                if (adicionado > 0) {
                    JOptionPane.showMessageDialog(null, "Dados do Funcionario Alterado com Sucesso !!!");
                    // as linhas abaixo limpam os campos
                    
                    txtFuncNome.setText(null);
                    txtFuncEndereco.setText(null);
                    txtFuncBairro.setText(null);
                    txtFuncCidade.setText(null);
                    txtFuncCpf.setText(null);
                    txtFuncDataNasc.setText(null);
                    txtFuncFone.setText(null);
                    txtFuncEmail.setText(null);
                    txtFuncCelular.setText(null);
                    // Reabiltar o botão Cadastrar após a alteração do cliente realizada.
                    btnAdicionar.setEnabled(true);
                }
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    // metodo responssável pela remoção de funcionario
    private void remover() {
        //a estrutura abaixo confirma a remoção do funcionario
        int confirma = JOptionPane.showConfirmDialog(null, "Tem Certeza que Deseja Remover este Funcionário ?", "Atenção!!!", JOptionPane.YES_NO_OPTION);
        if (confirma == JOptionPane.YES_OPTION) {
            String sql = "delete from tbfuncionarios where idfunc=?";
            try {
                pst = conexao.prepareStatement(sql);
                pst.setString(1, txtFuncId.getText());
                int apagado = pst.executeUpdate();
                if (apagado > 0) {
                    JOptionPane.showMessageDialog(null, "Funcionário Removido com Sucesso");
                    // as linhas abaixo limpam os campos
                    txtFuncId.setText(null);
                    txtFuncNome.setText(null);
                    txtFuncEndereco.setText(null);
                    txtFuncBairro.setText(null);
                    txtFuncCidade.setText(null);
                    txtFuncCpf.setText(null);
                    txtFuncDataNasc.setText(null);
                    txtFuncFone.setText(null);
                    txtFuncEmail.setText(null);
                    txtFuncCelular.setText(null);
                    // Reabiltar o botão Cadastrar após a alteração do cliente realizada.
                    btnAdicionar.setEnabled(true);
                }
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }
        }
    }

OBS: Linhas abaixo correspondem aos eventos : 


    private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // chamando o método para alterar Cliente
        alterar();
    }                                          

    private void btnRemoverActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // chamando o metodo remover cliente
        remover();
    }                                          

    private void txtFuncPesquisarKeyReleased(java.awt.event.KeyEvent evt) {                                             
        // chamar metodo pesquisar clientes por numero do Telefone
        pesquisar_cliente();
    }                                            

    private void tblFuncionariosMouseClicked(java.awt.event.MouseEvent evt) {                                             
        // Chamando o metodo para setar campos
        setar_campos();
    }                                            

    private void btnAdicionarActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // método para adicionar clientes
        adicionar();
    }   

Nenhum comentário:

Postar um comentário