Controle de Comissões - Parte IV - Formulário de Controle das Comissões

Na janela Solution Explorer, clique com o botão direito em ctrComissao. Selecione Add / Windows Form.
No name, digite: frmComissao e pressione a tecla Enter. Altere as seguintes propriedades:
Text: Controle de Comissões
StartPosition: ScreenCenter 'Centraliza o formulário
MinimizeBox: False
MaximizeBox: False

Copie o groupbox gbOpcoes do form frmVendedor.

Componente Text Name Propriedade
Label Id lblId  
TextBox   txtId Enabled=False
Label Vendedor: lblVendedor  
ComboBox   cmbVendedor  
Label Data: lblData  
DateTimePicker   dtpData Format=Short
Label Valor da Venda: lblValorVenda  
MaskedTextBox   mskValorVenda  
Label % de Comissão lblPercentualComissao  
TextBox   txtPercentualComissao  
Label Valor da Comissão: lblValorComissao  
MaskedTextBox   mskValorComissao  

Dê um duplo clique no formulário. Insira uma linha antes de Public Class frmComissao e digite:
Imports System.Data.SqlClient

após a linha Public Class frmComissao e digite:
'Referente a tabela de comissão
Private dtComissao As DataTable
Private daComissao As SqlDataAdapter
Private dsComissao As DataSet

'Referente a tabela de vendedor
Private dtVendedor As DataTable
Private daVendedor As SqlDataAdapter
Private dsVendedor As DataSet

Private conBD As SqlConnection
Private registro As Integer

Após a linha Private Sub frmComissao_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, digite o código abaixo:
Dim sSQL As String = "Select * From Vendedor Order by Codigo"
Try
conBD = New SqlConnection(strCon)
dsVendedor = New DataSet
daVendedor = New SqlDataAdapter(sSQL, conBD)
daVendedor.Fill(dsVendedor, "Vendedor")
dtVendedor = dsVendedor.Tables("Vendedor")

Call limpar()

Dim dtVendedor As DataTable
Dim drowVendedor As DataRow
Dim dsVendedor As New DataSet
Dim dadpt As New SqlDataAdapter("Select Codigo, Nome From Vendedor Order By Nome", strCon)
dadpt.Fill(dsVendedor, "Vendedor")
dtVendedor = dsVendedor.Tables(0)
'Preenche o nome dos vendedores no combobox
For Each drowVendedor In dtVendedor.Rows
cmbVendedor.Items.Add(drowVendedor.Item("Nome"))
Next

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

Logo após o End Sub, digite o código abaixo:
Private Sub Limpar()
For Each c As Control In Me.gbDados.Controls
If TypeOf c Is TextBox Or TypeOf c Is ComboBox Or TypeOf c Is MaskedTextBox Then
c.Text = ""
End If
Next

Codificação do botão Novo:
If btnNovo.Text = "&Novo" Then
Call Limpar()
btnExcluir.Enabled = False
btnEditar.Enabled = False
btnNovo.Text = "&Incluir"
cmbVendedor.Focus() 'Envia o foco para a descrição
ElseIf btnNovo.Text = "&Incluir" Then
Dim drowComissao As DataRow = dtComissao.NewRow
incluirRegistro(drowComissao)
btnNovo.Text = "&Novo"
End If

Codificação do botão Editar:
Dim sSQL As String
Dim reg As Integer
Dim sqlComando As SqlCommand

Dim datatmp As Date
Dim data As String

datatmp = Convert.ToDateTime(dtpData.Value)
data = datatmp.Year.ToString & "-" & datatmp.Month.ToString & "-" & datatmp.Day.ToString

'Localiza o vendedor na tabela
Dim conBD As New SqlConnection(strCon)
Dim cmd As New SqlCommand
cmd.Connection = conBD
cmd.CommandText = "Select Codigo, Nome From Vendedor Where Nome='" & cmbVendedor.Text & "'"
conBD.Open()
Dim drowVendedor As SqlDataReader
drowVendedor = cmd.ExecuteReader
drowVendedor.Read()
sSQL = "Update Comissao Set CodigoVendedor='" & drowVendedor.Item("Codigo")
sSQL = sSQL & ", Data=" & data
sSQL = sSQL & ", ValorVenda='" & mskValorVenda.Text
sSQL = sSQL & ", PercentualComissao=" & Replace(txtPercentualComissao.Text, ",", ".")
sSQL = sSQL & ", ValorComissao=" & Replace(mskValorComissao.Text, ",", ".")
sSQL = sSQL & " Where Id=" & Val(txtId.Text)
conBD.Close()
conBD = New SqlConnection(strCon)
sqlComando = New SqlCommand(sSQL, conBD)

daComissao.UpdateCommand = sqlComando

Try
conBD.Open()
reg = sqlComando.ExecuteNonQuery

If reg > 0 Then
daComissao.Update(dsComissao, "Comissao")
daComissao.Fill(dsComissao, "Comissao")
dtComissao = dsComissao.Tables("Comissao")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
End Try
btnEditar.Enabled = False

Codificação do botão Excluir:
If MessageBox.Show("Deseja Excluir ?", "Excluir", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
If Val(txtId.Text) = 0 Then
MessageBox.Show("Informe o Id!", "Id", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
Dim codigo As Integer
codigo = CType(txtId.Text, Integer)
eliminarRegistro(codigo)
End If

Logo após o End Sub, digite o código abaixo:
Private Sub eliminarRegistro(ByVal codigo As Integer)
Dim sSQL As String
Dim reg As Integer
Dim sqlComando As SqlCommand

sSQL = "Delete From Comissao Where Id=" & codigo
conBD = New SqlConnection(strCon)
sqlComando = New SqlCommand(sSQL, conBD)
daComissao.DeleteCommand = sqlComando

Try
conBD.Open()
reg = sqlComando.ExecuteNonQuery
If reg > 0 Then
MsgBox("Registro Excluído com sucesso!")
Call Limpar()
daComissao.Update(dsComissao, "Comissao")
dsComissao.Tables("Comissao").Reset()
daComissao.Fill(dsComissao, "Comissao")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

Codificação do botão Pesquisar:
frmPComissao.ShowDialog()
Call ExibirDados(intCodigo)

Codificação do botão Sair:
Close()

Permitir somente números e a vírgula:
Dê um duplo clique na caixa mskValorVenda e digite o código abaixo:
If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not e.KeyChar = "," Then
e.Handled = True
End If

Faça o mesmo com as caixas: txtPercentualComissao e mskValorVenda.

Controle de Comissões - Parte I

Controle de Comissões - Parte II

Controle de Comissões - Parte III - Pesquisa de Vendedor

Controle de Comissões - Parte V - Pesquisa de Comissões

Controle de Comissões - Parte VI - Relatório de Vendedor

Hosted by www.Geocities.ws

1