Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas dificeis de resolver


Carlos Rocha

Pergunta

Problemas dificeis de resolver

1)

Ola.

Estou fazendo o código abaixo para inserir pedidos e ítens do pedido:

Private Sub incluirRegistro(ByVal dr As DataRow)
        Dim tabelapedidos As String = "pedidos"
        Dim tabeladetalhespedidos As String = "detalhespedidos"
        Dim sqlpedidos As String = "INSERT INTO " & tabelapedidos & " (clienteID,ativo,data)VALUES ('" & codigocli.Text & "','S','" & Format(Date.Today, "yyyy-MM-dd") & "')"
        Dim sqlitens As String = "INSERT INTO " & tabeladetalhespedidos & " (pedidoID,produtoID,unidade,descricao,preço,quantidade,subtotal) VALUES ('" & DGWPedidos.CurrentRow.Cells(0).Value & "','" & DGWPedidos.CurrentRow.Cells(1).Value & "','" & DGWPedidos.CurrentRow.Cells(2).Value & "','" & DGWPedidos.CurrentRow.Cells(3).Value & "','" & DGWPedidos.CurrentRow.Cells(4).Value & "','" & DGWPedidos.CurrentRow.Cells(5).Value & "','" & DGWPedidos.CurrentRow.Cells(6).Value & "')"

        Dim ds_pedidos As DataSet = accDb.ExecuteDS(sqlpedidos, tabelapedidos)
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            accDb.ExecuteDS(sqlitens, tabeladetalhespedidos)
        Next

        Try
            MessageBox.Show("Pedidos incluido com sucesso.")
            exibirDados(registropedidos)
        Catch ex As Exception
            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
        End Try
    End Sub
A gravação do pedido vai beleza mas a gravação dos ítens não. Na hora de fazer o For Each, ele conta quantos ítens tem na DataGridView e grava apenas o primeiro ítem quantas vezes for o numero de linhas na gridview. Por exemplo: na grid tem la Pedido Produto quantidade preço Total 1 0325 20 25,00 50,00 1 0256 10 50,00 50,00 1 0148 30 30,00 90,00 3 registros. Certo? Pois é. O problema é que ele grava no banco só o primeiro registro assim: Pedido Produto quantidade preço Total 1 0325 20 25,00 50,00 1 0325 20 25,00 50,00 1 0325 20 25,00 50,00 Mas no codigo abaixo, ele já percorre cada linha e faz correto. Só que não é com o DataGridView e sim com o datarow
Private Sub bcliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcliente.Click
        Dim dialogo As New frmClientes
        dialogo.ShowDialog()
        If dialogo.DialogResult = Windows.Forms.DialogResult.OK Then
            Dim tabela As String = "Clientes"
            Dim sql As String = "Select * from " & tabela & " where clienteID = '" & dialogo.registrocliente & "'"
            ds = accDb.ExecuteDS(sql, tabela)
            Dim dr As DataRow
            For Each dr In ds.Tables(0).Rows
                codigocli.Text = dr.Item("clienteID")
                cliente.Text = dr.Item("nome")
                registrocliente = dr.Item("clienteID")
            Next dr
        Else
            MsgBox("Não foi selecionado nenhum cliente.")
            codigocli.Text = ""
            cliente.Text = ""
        End If
    End Sub
Onde esta o erro? 2)Como faço para limpar os registros em uma datagridview mantendo os nomes das colunas? Isso no caso de eu for fazer um novo pedido e clikar no botão Novo. Pergunto isso pois quando abro o formulario de pedidos a partir do Menu, já abre com os dados do primeiro pedido cadastrado. Bom, limpar as text areas consegui mas limpar a datagridview para popular com os ítens do novo pedido. O código que estou usando para popular a DataGridView com os dados que vem do banco no onLoad do form Cadastro de pedidos é:
Private Sub mostracolunas()
        DGWPedidos.Columns.Item(0).HeaderText = "CODIGO PEDIDO"
        DGWPedidos.Columns.Item(1).HeaderText = "CODIGO PRODUTO"
        DGWPedidos.Columns.Item(2).HeaderText = "TIPO UNIDADE"
        DGWPedidos.Columns.Item(3).HeaderText = "DESCRIÇÃO"
        DGWPedidos.Columns.Item(4).HeaderText = "PREÇO UNITÁRIO"
        DGWPedidos.Columns.Item(5).HeaderText = "QTDE"
        DGWPedidos.Columns.Item(6).HeaderText = "SUBTOTAL"
    End Sub

    Private Sub listaitens()
        'carrega ítens pedidos
        Dim tabelaitens As String = "detalhespedidos"
        Dim sqlitens As String = "Select * from " & tabelaitens & " where pedidoID=" & dr("pedidoID")
        ds_itens = accDb.ExecuteDS(sqlitens, tabelaitens)
        DGWPedidos.DataSource = ds_itens.Tables(0).DefaultView
        mostracolunas()
        total.Text = 0.0
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            total.Text += linha.Cells(6).Value
        Next
    End Sub
No carregamento do form, após a listagem dos dados dos pedidos, carrego os ítens do pedido na DataGridView
Private Sub Pedidos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'carrega pedidos
        Dim tabelapedidos As String = "pedidos"
        Dim sqlpedidos As String = "select p.pedidoID, p.clienteID, p.ativo, p.data, c.nome as nome from  pedidos p inner join clientes c ON  p.clienteID = c.clienteID  where p.ativo='S' order by pedidoID"
        ds = accDb.ExecuteDS(sqlpedidos, tabelapedidos)
        dt = ds.Tables(tabelapedidos)
        registropedidos = dt.Rows.Count - 1
        ' com primarykey
        dt.PrimaryKey = New DataColumn() {dt.Columns(0)}
        dr = dt.Rows.Find(registropedidos)
        registropedidos = dt.Rows.IndexOf(dr)
        ' com primarykey
        exibirDados(registropedidos)
        desabilita()
        If dt.Rows.Count = 0 Then
            Primeiro.Enabled = False
            Anterior.Enabled = False
            Proximo.Enabled = False
            Ultimo.Enabled = False
            Atualizar.Enabled = False
            Eliminar.Enabled = False
        End If
        If dt.Rows.Count > 0 Then
            registropedidos = 0
            Primeiro_Click(Nothing, Nothing)
        Else
            registropedidos = -1
        End If
    End Sub
Carregado o form pedidos, eu consigo navegar entre os pedidos gravados normalmente veja os pedidos e os seus ítens normalmente. Porem, quando vou inserir um novo pedido me deparo com 2 problemas. O primeiro é que não consigo limpar a DataGridView para carregarla com os ítens do novo pedido. O segundo é que, na hora de gravar o pedidono banco, o proprio MySql se encarrega de saber qual é o novo numero para o pedido ao passo de que n hora de gravar os ítens desse novo pedido na tabeladetalhespedidos aí eu preciso saber qual é o numero do novo pedido para eu consiguir gravar no banco corretamente e isso não to consiguindo. Veja o código do insert:
Private Sub Novo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Novo.Click
        If Novo.Text = "Novo" Then
            limpacampos()
            data.Text = Date.Today
            codigoped.Visible = False
            LabelCodigoPed.Visible = False
            Primeiro.Enabled = False
            Proximo.Enabled = False
            Anterior.Enabled = False
            Ultimo.Enabled = False
            Atualizar.Enabled = False
            Eliminar.Enabled = False
            Encerrar.Text = "Cancela"
            Novo.Text = "Incluir"
            bcliente.Enabled = True
            bproduto.Enabled = True
            Incluir.Enabled = True
            Excluir.Enabled = True
            qtde.Enabled = True
            bcliente_Click(Nothing, Nothing)
        ElseIf Novo.Text = "Incluir" Then
            dr = dt.NewRow
            incluirRegistro(dr)
            desabilita()
            Novo.Text = "Novo"
            Encerrar.Text = "Encerrar"
            Primeiro.Enabled = True
            Proximo.Enabled = True
            Anterior.Enabled = True
            Ultimo.Enabled = True
            Atualizar.Enabled = True
            Eliminar.Enabled = True
        End If
    End Sub
Public Sub limpacampos()
        For Each c As Control In Me.grpitens.Controls
            If TypeOf c Is TextBox Then
                c.Text = ""
            End If
        Next
        For Each dgw As Control In Me.grpitens.Controls
            If TypeOf dgw Is DataGridView Then
                '  DGWPedidos.DataSource = Nothing
            End If
        Next
    End Sub
Private Sub incluirRegistro(ByVal dr As DataRow)
        Dim tabelapedidos As String = "pedidos"
        Dim tabeladetalhespedidos As String = "detalhespedidos"
        Dim sqlpedidos As String = "INSERT INTO " & tabelapedidos & " (clienteID,ativo,data)VALUES ('" & codigocli.Text & "','S','" & Format(Date.Today, "yyyy-MM-dd") & "')"
        Dim sqlitens As String = "INSERT INTO " & tabeladetalhespedidos & " (pedidoID,produtoID,unidade,descricao,preço,quantidade,subtotal) VALUES ('" & DGWPedidos.CurrentRow.Cells(0).Value & "','" & DGWPedidos.CurrentRow.Cells(1).Value & "','" & DGWPedidos.CurrentRow.Cells(2).Value & "','" & DGWPedidos.CurrentRow.Cells(3).Value & "','" & DGWPedidos.CurrentRow.Cells(4).Value & "','" & DGWPedidos.CurrentRow.Cells(5).Value & "','" & DGWPedidos.CurrentRow.Cells(6).Value & "')"

        Dim ds_pedidos As DataSet = accDb.ExecuteDS(sqlpedidos, tabelapedidos)
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            accDb.ExecuteDS(sqlitens, tabeladetalhespedidos)
        Next

        Try
            MessageBox.Show("Pedidos incluido com sucesso.")
            exibirDados(registropedidos)
        Catch ex As Exception
            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
        End Try
    End Sub
E agora segue o código completo para apreciação de voces:
Imports MySql.Data.MySqlClient
Public Class Pedidos
    'INICIO DAS DECLARAÇÕES DAS VARIAVEIS GLOBAIS
    Dim accDb As New DBConnection
    Dim registrocliente As Integer
    Dim registroproduto As Integer
    Dim registroitem As Integer
    Dim registropedido As Integer
    Dim registropedidos As Integer
    Dim dr As DataRow
    Dim I As Integer = 0
    Dim dt As DataTable
    Dim ds As DataSet = Nothing
    Dim ds_itens As DataSet = Nothing
    'FIM DAS DECLARAÇÕES DAS VARIAVEIS GLOBAIS
    ''''''''''''''''''''''''''''''''''''''''''
    'INICIO DO BLOCO DE FUNÇÕES
    Private Sub exibirDados(ByVal m As Integer)
        Dim i As Integer = dt.Rows.Count - 1
        If m < 0 OrElse i < 0 Then Exit Sub
        dr = dt.Rows(m)
        codigoped.Text = dr("pedidoID")
        codigocli.Text = dr("clienteID")
        cliente.Text = dr("nome")
        data.Text = dr("data")
    End Sub
    Private Sub atribuirDados(ByVal dr As DataRow)
        dr("data") = data.Text
    End Sub
    Private Sub listaitens()
        'carrega ítens pedidos
        Dim tabelaitens As String = "detalhespedidos"
        Dim sqlitens As String = "Select * from " & tabelaitens & " where pedidoID=" & dr("pedidoID")
        ds_itens = accDb.ExecuteDS(sqlitens, tabelaitens)
        DGWPedidos.DataSource = ds_itens.Tables(0).DefaultView
        mostracolunas()
        total.Text = 0.0
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            total.Text += linha.Cells(6).Value
        Next
    End Sub
    Private Sub mostracolunas()
        DGWPedidos.Columns.Item(0).HeaderText = "CODIGO PEDIDO"
        DGWPedidos.Columns.Item(1).HeaderText = "CODIGO PRODUTO"
        DGWPedidos.Columns.Item(2).HeaderText = "TIPO UNIDADE"
        DGWPedidos.Columns.Item(3).HeaderText = "DESCRIÇÃO"
        DGWPedidos.Columns.Item(4).HeaderText = "PREÇO UNITÁRIO"
        DGWPedidos.Columns.Item(5).HeaderText = "QTDE"
        DGWPedidos.Columns.Item(6).HeaderText = "SUBTOTAL"
    End Sub
    Public Sub desabilita()
        For Each c As Control In Me.gritens.Controls
            If TypeOf c Is TextBox OrElse TypeOf c Is DataGridView OrElse TypeOf c Is Button Then
                c.Enabled = False
            End If
        Next
        For Each c As Control In Me.grpitens.Controls
            If TypeOf c Is TextBox OrElse TypeOf c Is DataGridView OrElse TypeOf c Is Button Then
                c.Enabled = False
            End If
        Next
    End Sub
    Public Sub habilita()
        For Each c As Control In Me.gritens.Controls
            If TypeOf c Is TextBox OrElse TypeOf c Is DataGridView OrElse TypeOf c Is Button Then
                c.Enabled = True
            End If
        Next
        For Each c As Control In Me.grpitens.Controls
            If TypeOf c Is TextBox OrElse TypeOf c Is DataGridView OrElse TypeOf c Is Button Then
                c.Enabled = True
            End If
        Next
    End Sub
    Public Sub limpacampos()
        For Each c As Control In Me.grpitens.Controls
            If TypeOf c Is TextBox Then
                c.Text = ""
            End If
        Next
        For Each dgw As Control In Me.grpitens.Controls
            If TypeOf dgw Is DataGridView Then
                '  DGWPedidos.DataSource = Nothing
            End If
        Next
    End Sub
    Private Sub incluirRegistro(ByVal dr As DataRow)
        Dim tabelapedidos As String = "pedidos"
        Dim tabeladetalhespedidos As String = "detalhespedidos"
        Dim sqlpedidos As String = "INSERT INTO " & tabelapedidos & " (clienteID,ativo,data)VALUES ('" & codigocli.Text & "','S','" & Format(Date.Today, "yyyy-MM-dd") & "')"
        Dim sqlitens As String = "INSERT INTO " & tabeladetalhespedidos & " (pedidoID,produtoID,unidade,descricao,preço,quantidade,subtotal) VALUES ('" & DGWPedidos.CurrentRow.Cells(0).Value & "','" & DGWPedidos.CurrentRow.Cells(1).Value & "','" & DGWPedidos.CurrentRow.Cells(2).Value & "','" & DGWPedidos.CurrentRow.Cells(3).Value & "','" & DGWPedidos.CurrentRow.Cells(4).Value & "','" & DGWPedidos.CurrentRow.Cells(5).Value & "','" & DGWPedidos.CurrentRow.Cells(6).Value & "')"

        Dim ds_pedidos As DataSet = accDb.ExecuteDS(sqlpedidos, tabelapedidos)
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            accDb.ExecuteDS(sqlitens, tabeladetalhespedidos)
        Next

        Try
            MessageBox.Show("Pedidos incluido com sucesso.")
            exibirDados(registropedidos)
        Catch ex As Exception
            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
        End Try
    End Sub
    Private Sub atualizarRegistro(ByVal dr As DataRow)
        '  atribuirDados(dr)
        '  Dim sql As String = "UPDATE " & tabela & " SET nome = '" & Nome.Text & "',cpf_cnpj = '" & cpf_cnpj.Text & "',endereco= '" & Endereco.Text & "',email = '" & data.Text & "', where clienteID='" & dr("clienteID") & "'"
        '  ds = accDb.ExecuteDS(sql, tabela)
        exibirDados(registropedidos)
        Try
            MessageBox.Show("registro de Usuário alterado com sucesso.")
        Catch ex As Exception
            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
        End Try
    End Sub
    Private Sub eliminarRegistro(ByVal codigo As Integer)
        ' Dim sql As String = "UPDATE " & tabela & " SET ativo = 'N' where clienteID = " & codigo
        ' ds = accDb.ExecuteDS(Sql, tabela)
        Proximo_Click(Nothing, Nothing)
        Try
            MessageBox.Show("registro de Usuário excluido com sucesso.")
        Catch ex As Exception
            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
        End Try
    End Sub
    'FIM DO BLOCO DE FUNÇÕES
    ''''''''''''''''''''''''''''''
    'INICIO DO BLOCO DE PROCIDURES
    Private Sub Pedidos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'carrega pedidos
        Dim tabelapedidos As String = "pedidos"
        Dim sqlpedidos As String = "select p.pedidoID, p.clienteID, p.ativo, p.data, c.nome as nome from  pedidos p inner join clientes c ON  p.clienteID = c.clienteID  where p.ativo='S' order by pedidoID"
        ds = accDb.ExecuteDS(sqlpedidos, tabelapedidos)
        dt = ds.Tables(tabelapedidos)
        registropedidos = dt.Rows.Count - 1
        ' com primarykey
        dt.PrimaryKey = New DataColumn() {dt.Columns(0)}
        dr = dt.Rows.Find(registropedidos)
        registropedidos = dt.Rows.IndexOf(dr)
        ' com primarykey
        exibirDados(registropedidos)
        desabilita()
        If dt.Rows.Count = 0 Then
            Primeiro.Enabled = False
            Anterior.Enabled = False
            Proximo.Enabled = False
            Ultimo.Enabled = False
            Atualizar.Enabled = False
            Eliminar.Enabled = False
        End If
        If dt.Rows.Count > 0 Then
            registropedidos = 0
            Primeiro_Click(Nothing, Nothing)
        Else
            registropedidos = -1
        End If
    End Sub
    Private Sub Primeiro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Primeiro.Click
        registropedidos = 0
        exibirDados(registropedidos)
        listaitens()
    End Sub

    Private Sub Anterior_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Anterior.Click
        registropedidos = registropedidos - 1
        If registropedidos < 0 Then registropedidos = 0
        exibirDados(registropedidos)
        listaitens()
    End Sub

    Private Sub Proximo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Proximo.Click
        Dim i As Integer = dt.Rows.Count - 1
        registropedidos = registropedidos + 1
        If registropedidos > i Then registropedidos = i
        exibirDados(registropedidos)
        listaitens()
    End Sub

    Private Sub Ultimo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ultimo.Click
        registropedidos = dt.Rows.Count - 1
        exibirDados(registropedidos)
        listaitens()
    End Sub
    Private Sub bcliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcliente.Click
        Dim dialogo As New frmClientes
        dialogo.ShowDialog()
        If dialogo.DialogResult = Windows.Forms.DialogResult.OK Then
            Dim tabela As String = "Clientes"
            Dim sql As String = "Select * from " & tabela & " where clienteID = '" & dialogo.registrocliente & "'"
            ds = accDb.ExecuteDS(sql, tabela)
            Dim dr As DataRow
            For Each dr In ds.Tables(0).Rows
                codigocli.Text = dr.Item("clienteID")
                cliente.Text = dr.Item("nome")
                registrocliente = dr.Item("clienteID")
            Next dr
        Else
            MsgBox("Não foi selecionado nenhum cliente.")
            codigocli.Text = ""
            cliente.Text = ""
        End If
    End Sub
    Private Sub bproduto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bproduto.Click
        Dim dialogo As New frmProdutos
        dialogo.ShowDialog()
        If dialogo.DialogResult = Windows.Forms.DialogResult.OK Then
            Dim tabela As String = "Produtos"
            Dim sql As String = "Select * from " & tabela & " where produtoID = '" & dialogo.registroproduto & "'"
            ds = accDb.ExecuteDS(sql, tabela)
            Dim dr As DataRow
            For Each dr In ds.Tables(0).Rows
                codigoprod.Text = dr.Item("produtoID")
                produto.Text = dr.Item("descricao")
                preço.Text = dr.Item("preço")
                unidade.Text = dr.Item("unidade")
                registroproduto = dr.Item("produtoID")
            Next dr
        Else
            MsgBox("Não foi selecionado nenhum cliente.")
            codigocli.Text = ""
            cliente.Text = ""
        End If
    End Sub

    Private Sub Novo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Novo.Click
        If Novo.Text = "Novo" Then
            limpacampos()
            data.Text = Date.Today
            codigoped.Visible = False
            LabelCodigoPed.Visible = False
            Primeiro.Enabled = False
            Proximo.Enabled = False
            Anterior.Enabled = False
            Ultimo.Enabled = False
            Atualizar.Enabled = False
            Eliminar.Enabled = False
            Encerrar.Text = "Cancela"
            Novo.Text = "Incluir"
            bcliente.Enabled = True
            bproduto.Enabled = True
            Incluir.Enabled = True
            Excluir.Enabled = True
            qtde.Enabled = True
            bcliente_Click(Nothing, Nothing)
        ElseIf Novo.Text = "Incluir" Then
            dr = dt.NewRow
            incluirRegistro(dr)
            desabilita()
            Novo.Text = "Novo"
            Encerrar.Text = "Encerrar"
            Primeiro.Enabled = True
            Proximo.Enabled = True
            Anterior.Enabled = True
            Ultimo.Enabled = True
            Atualizar.Enabled = True
            Eliminar.Enabled = True
        End If
    End Sub

    Private Sub Atualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Atualizar.Click
        If Atualizar.Text = "Atualizar" Then
            Novo.Enabled = False
            Primeiro.Enabled = False
            Proximo.Enabled = False
            Anterior.Enabled = False
            Ultimo.Enabled = False
            Eliminar.Enabled = False
            Encerrar.Text = "Cancela"
            Atualizar.Text = "Salvar"
            bcliente.Enabled = True
            bproduto.Enabled = True
            Incluir.Enabled = True
            Excluir.Enabled = True
            qtde.Enabled = True
            cliente.Focus()
            codigoped.Enabled = False
            codigoped.Visible = True
            LabelCodigoPed.Visible = True
        ElseIf Atualizar.Text = "Salvar" Then
            codigoped.Enabled = False
            If registropedidos < 0 OrElse registropedidos > dt.Rows.Count - 1 Then Exit Sub
            dr = dt.Rows(registropedidos)
            atualizarRegistro(dr)
            Atualizar.Text = "Atualizar"
            Encerrar.Text = "Encerrar"
            Novo.Enabled = True
            Eliminar.Enabled = True
            desabilita()
            Primeiro.Enabled = True
            Proximo.Enabled = True
            Anterior.Enabled = True
            Ultimo.Enabled = True
        End If
    End Sub

    Private Sub Incluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Incluir.Click

        If produto.Text = String.Empty Then
            MsgBox("Escolha o produto.")
            bproduto_Click(Nothing, Nothing)
            Exit Sub
        ElseIf qtde.Text = String.Empty Then
            MsgBox("Informe a quantidade requerida...")
            qtde.Focus()
            Exit Sub
        End If
        'DGWPedidos.Rows(I).Cells(0).Value = dr("pedidoID")
        'DGWPedidos.Rows(I).Cells(1).Value = registroproduto
        'DGWPedidos.Rows(I).Cells(2).Value = unidade.Text
        'DGWPedidos.Rows(I).Cells(3).Value = produto.Text
        'DGWPedidos.Rows(I).Cells(4).Value = preço.Text
        'DGWPedidos.Rows(I).Cells(5).Value = qtde.Text
        'DGWPedidos.Rows(I).Cells(6).Value = preço.Text * qtde.Text

        DGWPedidos.CurrentRow.Cells(0).Value = dr("pedidoID")
        DGWPedidos.CurrentRow.Cells(1).Value = registroproduto
        DGWPedidos.CurrentRow.Cells(2).Value = unidade.Text
        DGWPedidos.CurrentRow.Cells(3).Value = produto.Text
        DGWPedidos.CurrentRow.Cells(4).Value = preço.Text
        DGWPedidos.CurrentRow.Cells(5).Value = qtde.Text
        DGWPedidos.CurrentRow.Cells(6).Value = preço.Text * qtde.Text


        total.Text = 0.0
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            total.Text += linha.Cells(6).Value
        Next

        I = DGWPedidos.Rows.Count + 1
    End Sub
    Private Sub Encerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Encerrar.Click
        If Encerrar.Text = "Encerrar" Then
            If MessageBox.Show("Deseja encerrar a aplicação", "Encerrar", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                If ds.HasChanges Then
                    ds.AcceptChanges()
                End If
                Me.Close()
            End If
        ElseIf Encerrar.Text = "Cancela" Then
            desabilita()
            Encerrar.Text = "Encerrar"

            Primeiro.Enabled = True
            Proximo.Enabled = True
            Anterior.Enabled = True
            Ultimo.Enabled = True
            Atualizar.Enabled = True
            Eliminar.Enabled = True
            codigoped.Visible = True
            LabelCodigoPed.Visible = True
            If dt.Rows.Count = 0 Then
                Atualizar.Enabled = False
                Eliminar.Enabled = False
            End If
            Novo.Text = "Novo"
            Novo.Enabled = True
            Atualizar.Text = "Atualizar"
            Anterior_Click(Nothing, Nothing)
        End If
    End Sub

    Private Sub Eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Eliminar.Click
        If registropedidos < 0 OrElse registropedidos > dt.Rows.Count - 1 Then
            Exit Sub
        Else
            If MessageBox.Show("Deseja Excluir esse registro", "Excluir", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                Dim codigo As Integer
                Dim dr As DataRow = dt.Rows(registropedidos)
                codigo = dr("clienteID")
                codigo = CType(codigo.ToString, Integer)
                eliminarRegistro(codigo)
            End If
        End If
        ' Dim sql As String = "UPDATE " & tabela & " SET ativo = 'N' where clienteID = " & codigoped
        'ds = accDb.ExecuteDS(sql, tabela)
        Proximo_Click(Nothing, Nothing)
        Try
            MessageBox.Show("registro de Usuário excluido com sucesso.")
        Catch ex As Exception
            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
        End Try
    End Sub
    'FIM DO BLOCO DE PROCIDURES

End Class

caso queiram baixar o projeto para verem como esta.

http://www.carcleo.com/vendas.zip

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...