quarta-feira, 25 de maio de 2011

Sistema de Ordem de Serviço em C# - SQL Server e Crystal Reports Parte VIII

7.  Tela de Serviço

Mude as propriedades do formulário a seguir:
Propriedades
Valores
Icon
Selecione o ícone da Aplicação
Size
732; 633
StartPosition
CenterScreen
Text
Cadastro de Serviço

Arraste uma GroupBox dê o nome de Cadastro de Serviço.
Mude as propriedades a seguir:
Propriedades
Valores
Archor
Top, Left, Right
Size
600; 633
Text
Dados do Serviço
Location
27; 23



Arraste as colunas da tabela para dentro da GroupBox e organize da sua forma.
Selecione um Campo de cada vez:
Descrição e Observação mudem as propriedades a seguir
Propriedades
Valores
Location
Descrição: 16; 71 | Observação: 16; 155
MultiLine
True
ScrollBars
Vertical
Size
523; 65

Código, Data do Cadastro e Cadastrado Por, desabilite a propriedade Enable.

O layout ficou assim:

Arraste uma GroupBox e adicione os campos a seguir:
Label
Text = Filtrar Por
ComboBox
Edit Items: Código, Nome e name = cbmFiltrar
Label
Text = “=”
TextBox
Name = txtPesquisar
Botão
Name = btnPesquisar , Text = Pesquisar

 O Layout ficou assim:























Adicione uma groupBox(Text = Serviço) e arraste da paleta Data Sources a tabela tbServico. Faça como a imagem solicitar.






















Desabilite a Enable Adding, Enable Editing e Enable Deleting. Clique em Edit Columns renomei a propriedade HeaderText de cada campo como preferir. Segue uma sugestão:






















O Layout ficou assim:




























Volte para o código e insira o namespace a seguir:
using System.Data.SqlClient;

Embaixo do trecho de código public frmServico() adicione o código a seguir
SqlConnection cn = new SqlConnection(Properties.Settings.Default.ServicoConnectionString);
SqlCommand cmd = null;
   
Como na imagem:














Volte para o Design(F7), clique duas vezes no botão Pesquisar e insira o código a seguir:
try
            {
                if (cbmFiltrar.Text == "Código")
                {
                    //Define a instrução Sql
                    string sql = "SELECT * FROM tbServico WHERE idServico =" + txtPesquisar.Text + "";

                    //Lê os dados da variavel sql e conectar no cn
                    cmd = new SqlCommand(sql, cn);
                    //Abre conexão
                    cn.Open();

                    //Define o valor da CommandType para cmd
                    cmd.CommandType = CommandType.Text;

                    /*Representa um conjunto de comandos de dados e uma conexão de banco de dados
                    que são usados para preencher o DataSet e atualizar um banco de dados SQL Server.*/
                    SqlDataAdapter da = new SqlDataAdapter(cmd);

                    //Representa uma tabela de dados na memória.
                    DataTable servico = new DataTable();

                    /* Adiciona ou atualiza linhas em um DataTable para que correspondam na fonte de
                     * dados usando o DataTable.*/
                    da.Fill(servico);

                    /*A tbUsuarioDataGridView recebe o DataTable usuario*/
                    tbServicoDataGridView.DataSource = servico;

                  


                }
                if (cbmFiltrar.Text == "Nome")
                {
                    //define a instrução SQL
                    string sql = "SELECT * FROM tbServico WHERE nome LIKE '%" + txtPesquisar.Text + "%'";
                    cmd = new SqlCommand(sql, cn);
                    cn.Open();
                    cmd.CommandType = CommandType.Text;
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    DataTable servico = new DataTable();
                    da.Fill(servico);
                    tbServicoDataGridView.DataSource = servico;

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                cn.Close();
            }

Clique duas vezes no botão Adicionar Registro e insira o código a seguir:
//Desabilita o botão excluir para quem tiver nivel de acesso Operador
                if (frmLogin.NivelAcesso == "")
                {
                    bindingNavigatorDeleteItem.Enabled = false;
                }

Volte para o Design(F7) clique duas vezes no botão salvar e digite o código a seguir:
            try
            {
                //Desabilita o botão excluir para quem tiver nivel de acesso Operador
                if (frmLogin.NivelAcesso == "")
                {
                    bindingNavigatorDeleteItem.Enabled = false;
                }

                //Se os campos estiver preenchido faça
                if (nomeTextBox.Text != "")
                {
                   
                        //Mostrar a Data do Cadastro na Hora
                        if (dataDiaTextBox.Text == "")
                        {
                            dataDiaTextBox.Text = DateTime.Now.ToString();
                        }
                        //Mostrar quem Cadastrou o usuario
                        if (cadastradoPorTextBox.Text == "")
                        {
                            cadastradoPorTextBox.Text = frmLogin.usuarioConectado;
                        }
                        //Executar a aplicação
                        this.Validate();
                        this.tbServicoBindingSource.EndEdit();
                        this.tbServicoTableAdapter.Update(this.servicoDataSet.tbServico);
MessageBox.Show("Cadastrado realizado com sucesso");

                   
                }
               
                else
                {
                    //Ser os campos não estiverem preenchido
                    MessageBox.Show("O Campo nome não pode ficar vazio");
                }
            }
            catch (Exception ex)
            {
                //Caso haja uma exceção será tratada neste código
                MessageBox.Show("Não foi possível salvar pelo seguinte motivo: " + ex.Message);
            }

Adicionar o método para limpar o formulário:
private void LimparCampo()
        {
            idServicoTextBox.Clear();
            nomeTextBox.Clear();
            descricaoTextBox.Clear();
            valorTextBox.Clear();
            dataDiaTextBox.Clear();
            cadastradoPorTextBox.Clear();
        }

Insira o código para preenche um formulário através de uma DataGrid. Clique uma vez na DataGrid tbServicoDataGridView em Events > MouseDoubleClick
LimparCampo();
            idServicoTextBox.Text = tbServicoDataGridView.CurrentRow.Cells[0].Value.ToString();
            nomeTextBox.Text = tbServicoDataGridView.CurrentRow.Cells[1].Value.ToString();
            descricaoTextBox.Text = tbServicoDataGridView.CurrentRow.Cells[2].Value.ToString();
            observacaoTextBox.Text = tbServicoDataGridView.CurrentRow.Cells[3].Value.ToString();
            valorTextBox.Text = tbServicoDataGridView.CurrentRow.Cells[4].Value.ToString();
            dataDiaTextBox.Text = tbServicoDataGridView.CurrentRow.Cells[5].Value.ToString();
            cadastradoPorTextBox.Text = tbServicoDataGridView.CurrentRow.Cells[6].Value.ToString();



No Próximo Post estaremos desenvolvendo a Tela de Cliente
By: Natanael

3 comentários:

  1. como eu declaro essa variavel , pois nao estar sendo encontrada na biblioteca?


    ServicoConnectionString

    ResponderExcluir
  2. SqlConnection cn = new SqlConnection(Properties.Settings.Default.ServicoConectionString);


    Essa váriavel de referencia ficar responsavel por referir onde esta o banco de dados(endereço).
    Para chegar nela siga o caminho
    Em Solution Explorer clique no botao direito em Properties(Propriedades)/Settings. E ela se encontra.

    Atenção.

    O Nome pode mudar dependo do nome que se dar ao banco de dados.
    ex:

    FulanoDeTalConectionString
    MeuBancoConectionString
    CarroConectionString

    By: Natanael

    ResponderExcluir
  3. Boa noite Natanael, tudo bem?
    Preciso utilizar radioButtons na aplicação, como faço pra salvar no banco? E no cadastro de usuários exibe o seguinte erro quando peço pra salvar: {"Coluna 'nivelAcesso' não permite valores nulos."}, já revi todo o código, mas não sei onde esta o erro, será que você pode me ajudar.

    grata

    ResponderExcluir