8. Tela de Cliente
Na Paleta Data Sources > Arraste a tabela tbOrdemServico para dentro da GroupBox, clique na seta ao lado, clique Dock in parent container e por fim Edit Columns. Exclua a coluna idCliente. Mude os nomes das colunas de acordo com a figura a seguir:
Mude as propriedades a Seguir:
Propriedades | Valores |
Icon | Selecione o Ícone |
Size | 959; 597 |
StartPosition | CenterScreen |
Text | Cadastro de Cliente |
Arraste uma GroupBox e adicione os valores nas propriedades:
Propriedades | Valores |
Location | 12; 35 |
Size | 422; 235 |
Text | Dados Pessoais |
Na Data Source mude os tipos de Dados(Ex. TextBox, ComboBox) do campo CPF e telefone para MaskTextBox e Estado para ComboBox. Arraste para a GroupBox.
Adicione uma groupBox para Pesquisar o Cliente e mude as propriedades a seguir:
Propriedades | Valores |
Location | 440; 35 |
Size | 496; 69 |
Text | Pesquisar Cliente |
Adicione os seguintes componentes para dentro da GroupBox:
Label | Text = Filtrar Por |
ComboBox | Edit Items: Código, Nome e name = cbmFiltrar |
Label | Text = “=” |
MaskTextBox | Name = txtPesquisar |
Botão | Name = btnPesquisar , Text = Pesquisar |
Arraste uma GroupBox e adicione os valores nas propriedades:
Propriedades | Valores |
Location | 440; 110 |
Size | 499; 441 |
Text | Cliente(s) |
Desabilite o Código, Data de Cadastro, Cadastrado por pela propriedade Enable;
Na Paleta Data Sources > Arraste a tabela tbCliente para dentro da GroupBox, clique na seta ao lado, clique Dock in parent container. Desabilite a Enable Adding, Enable Editing e Enable Deleting e por fim clique em Edit Columns. Mude os nomes de acordo com a figura a seguir:
Arraste uma GroupBox e adicione os valores nas propriedades:
Propriedades | Valores |
Location | 12; 276 |
Size | 422; 272 |
Text | Serviço(s) Prestados: |
O Layout deverá ficar assim:
Volte para o Design(F7) e adicione o namespace e duas variáveis a seguir.
Volte para o Design(F7) e clique duas vezes no botão Pesquisar. Adicione o código a seguir:
try { if (cbmFiltrar.Text == "Código") { //Define a instrução Sql string sql = "SELECT * FROM tbCliente WHERE idCliente =" + 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 cliente = new DataTable(); /* Adiciona ou atualiza linhas * dados usando o DataTable.*/ da.Fill(cliente); /*A tbUsuarioDataGridView recebe o DataTable usuario*/ tbClienteDataGridView.DataSource = cliente; //Fechar a conexão } if (cbmFiltrar.Text == "Nome") { //define a instrução SQL string sql = "SELECT * FROM tbCliente WHERE nome LIKE '%" + txtPesquisar.Text + "%'"; cmd = new SqlCommand(sql, cn); cn.Open(); cmd.CommandType = CommandType.Text; SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable cliente = new DataTable(); da.Fill(cliente); tbClienteDataGridView.DataSource = cliente; } if (cbmFiltrar.Text == "CPF") { //define a instrução SQL string sql = "SELECT * FROM tbCliente WHERE cpf ='" + txtPesquisar.Text + "'"; cmd = new SqlCommand(sql, cn); cn.Open(); cmd.CommandType = CommandType.Text; SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable cliente = new DataTable(); da.Fill(cliente); tbClienteDataGridView.DataSource = cliente; } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { cn.Close(); } |
Volte para o Design(F7) clique uma vez no comboBox Filtrar entre no event e clique duas vezes na propriedade SelectedIndexChanged e insira o código a seguir:
if (cbmFiltrar.Text == "Código") { txtPesquisar.Mask = ""; } if (cbmFiltrar.Text == "Nome") { txtPesquisar.Mask = ""; } if (cbmFiltrar.Text == "CPF") { txtPesquisar.Mask = "000,000,000-00"; } if (cbmFiltrar.Text == "") { txtPesquisar.Mask = ""; } |
Arraste o Componente Timer para o formulário e nas propriedades mude o seguinte:
Enable para True
Interval para 32
No event,Clique Duas vezes no Tick e insira o código abaixo:
try { //define a instrução SQL string sql = "SELECT * FROM tbOrdemServico WHERE idCliente ='" + idClienteTextBox.Text + "'"; cmd = new SqlCommand(sql, cn); cn.Open(); cmd.CommandType = CommandType.Text; SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable os = new DataTable(); da.Fill(os); tbOrdemServicoDataGridView.DataSource = os; } catch(Exception ex) { MessageBox.Show(ex.Message); } finally { cn.Close(); } |
Clique Duas vezes no botão Adicionar Registro e insira o código abaixo:
//Desabilita o botão excluir para quem tiver nivel de acesso Operador if (frmLogin.NivelAcesso == "Operador") { bindingNavigatorDeleteItem.Enabled = false; } |
Clique duas vezes no botão Salvar e insira o código abaixo:
try { //Desabilita o botão excluir para quem tiver nivel de acesso Operador if (frmLogin.NivelAcesso == "Operador") { bindingNavigatorDeleteItem.Enabled = false; } if ((nomeTextBox.Text != "") && (cpfMaskedTextBox.Text != "")) { //Insere a Data if (dataDiaTextBox.Text == "") { dataDiaTextBox.Text = DateTime.Now.ToString(); } //Mostrar o usuário que cadastrou if (cadastradoPorTextBox.Text == "") { cadastradoPorTextBox.Text = frmLogin.usuarioConectado; } this.Validate(); this.tbClienteBindingSource.EndEdit(); this.tbClienteTableAdapter.Update(this.servicoDataSet.tbCliente); else { MessageBox.Show("CPF incorreto", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("O Campo 'Nome' e 'CPF não podem ficar vazio", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show("Não foi possível salvar pelo seguinte motivo: " + ex.Message); } |
Adicione este método para limpar o formulário:
private void LimparCampo() { idClienteTextBox.Clear(); nomeTextBox.Clear(); cpfMaskedTextBox.Clear(); telefoneMaskedTextBox.Clear(); enderecoTextBox.Clear(); bairroTextBox.Clear(); cidadeTextBox.Clear(); estadoComboBox.SelectedIndex = -1; dataDiaTextBox.Clear(); cadastradoPorTextBox.Clear(); } |
Clique uma vez no DataGrid do Cliente > Events> MouseDoubleClick e adicione o código a seguir: Para preenche um formulário através do DataGrid
LimparCampo(); idClienteTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[0].Value.ToString(); nomeTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[1].Value.ToString(); cpfMaskedTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[2].Value.ToString(); telefoneMaskedTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[3].Value.ToString(); enderecoTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[4].Value.ToString(); bairroTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[5].Value.ToString(); cidadeTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[6].Value.ToString(); estadoComboBox.Text = tbClienteDataGridView.CurrentRow.Cells[7].Value.ToString(); dataDiaTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[8].Value.ToString(); cadastradoPorTextBox.Text = tbClienteDataGridView.CurrentRow.Cells[9].Value.ToString(); |
Pronto a Tela de Cliente esta pronta.
No Próximo Tutorial estaremos desenvolvendo a Tela de Ordem de Serviço
Amigo Quando Vc vai postar o resto?
ResponderExcluirJá foram postado os Tutoriais.
ResponderExcluirBy: Natanael
a conexão não foi fechada.O estado atual da conexão e aberta.na tela do cliente, mas o código do formulário está igual do PDF.
Excluiramigo
ResponderExcluirestá td certo bonitinho, porem nao reconhece o formulario no frmTelaPrincipal:
onde estou errando?
rivate void usuárioToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
formulario.frmUsuario usuario = null; // form a ser aberto
//procura form na relação de forms filhos
foreach (Form frm in this.MdiChildren)
{
//se encontrou inicializa instancia de frmUsuario com o form ja aberto
if (frm is formulario.frmUsuario)
ola nataniel
ResponderExcluirmuito bom o projeto.
me tira uma duvida.
no caso do filtro é possivel alterar uma coisinha?
hj tem 1 combobox para filtrar.
queria fazer o seguinte:
aciono o primeiro combobox como cidade e coloco determinada cidade no pesquisar e executo preenchendo o datagridview.
estes dados que apareceram é possivel filtrar novamente atraves do outro combobox e txtPesquisar?
a ideia seria filtrar a cidade e depois os clientes q comecem com nome pedro, por exemplo.
agradeço se puderes me ajudar.