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

Somando os totais


Carlos Rocha

Pergunta

Pessoal!

Boa Tarde!

Com esse codigo eu insiro ítens na DataGridView e contabilizo os totais:

Private Sub Incluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Incluir.Click
        'a propriedade SelectionMode deve ser igual a FullRowSelect para deletar linhas
        If cliente.Text = String.Empty Then
            MsgBox("Escolha o clientes...")
            bcliente_Click(Nothing, Nothing)
            Exit Sub
        ElseIf 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
       
        Dim rowNew As DataRow = ds_itens_temp.Tables(0).NewRow
        rowNew("pedidoID") = codigoped.Text
        rowNew("produtoID") = codigoprod.Text
        rowNew("unidade") = unidade.Text
        rowNew("descricao") = produto.Text
        rowNew("preço") = preço.Text
        rowNew("quantidade") = qtde.Text
        rowNew("subtotal") = preço.Text * qtde.Text
        ds_itens_temp.Tables(0).Rows.Add(rowNew)
        ds_itens_temp.AcceptChanges()

        total.Text = 0.0
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            total.Text += linha.Cells(6).Value
            total.Text = FormatCurrency(total.Text, "0.00")
        Next linha
    End Sub
E com esse desisto e excluo a linha excluda na Datagridview e subtraio o valor da linha excluida do total
Private Sub Excluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Excluir.Click
        'a propriedade SelectionMode deve ser igual a FullRowSelect para deletar linhas
        'verifica se a linha a ser excluida é valida
        Dim registro As DataRowView = TryCast(DGWPedidos.CurrentRow.DataBoundItem, DataRowView)
        ' Existe algum registro selecionado? 
        If registro IsNot Nothing Then
            ' Aqui apaga a linha na datagrid;) 
            registro.Delete()
            ' E aqui apaga a linha na datatable, ou seja, o dataset aceita as alterações;) 
            ds_itens_temp.Tables(0).AcceptChanges()
        End If
        total.Text = 0.0
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            total.Text -= linha.Cells(6).Value
            total.Text = FormatCurrency(total.Text, "0.00")
        Next linha
    End Sub

Mas não da certo, esta dando resultado negativo

Como faço agora quando quero excluir uma linha na DataGridView e quero tirar o valor dela do total?

Da forma como apresentei até da certo mas não estou entendendo por que o numero sai negantivo.

Por exemplo:

os ítens todos somam R$315,00, dai retiro um de R$10,00 o resultado fica -R$305,00 e não +R$305,00.

Bom outra ajuda que preciso é o seguinte:

Tenho uma

public sub valida()

end sub

Co validações de formulario, quando chamo a valida() até executa a validação mas não executa a parada do códo com exit sub mas, se eu pegar o conteudo da valida() e colocar no lugar onde ela é chamada ai da cero como faço para usar a public sub valida()?

Tipo existe isso?

if valida() = false then exit sub

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Ta acontecendo um negócio extranho no formulario de pedidos:

O produto custa: 45,33 * 5 peças ta dando dízima periódica:

45,33 * 5 = 226,64999999999998.

Que é isso?

Outra coisa:

Tenho o código abaixo que só permite numeros, virgula e backspace. Só que só pode aceitar uma vírgula na textbox.

Como adaptar isso ao código:

Private Sub preco_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles preço.KeyPress
        If Not Char.IsNumber(e.KeyChar) And Not e.KeyChar = vbBack And Not e.KeyChar = "," Then
            e.Handled = True
        End If
    End Sub

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

  • 0

total.Text -= linha.Cells(6).Value
este menos atrás do seu igual esta deixando o resultado negativo. voce pode usar o valida daquele jeito,so que tem que retornar o valor na função. a dizima verifique sua variavel deve estar declarada com tipo errado
Private Sub preco_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles preço.KeyPress
        If e.KeyChar = (vbvirgula olhe no vb não lembro) then
msgbox "virgula"
else
msgbox "n foi virgula"

        End If
    End Sub

qualquer coisa poste!

Link para o comentário
Compartilhar em outros sites

  • 0

Ok.

Ainda sou meio (Full) cru em vb.net e ainda estou tendo dificulkdades.

nesse caso:

total.Text -= linha.Cells(6).Value

do sinal negativo. Como resolveria?

Fiz uma gabiarra e multipliquei oi resultado por -1 para dar positio mas não achei nada profissional.

sobre a função valida como faria o retorno de valor?

Se puder dar umexemplo agradeceria:

Link para o comentário
Compartilhar em outros sites

  • 0

Doce ilusão foi a minha.

Quando faço:

cpf_cnpj.DataBindings.Clear()
            cpf_cnpj.Mask = "00,000,000/0000-00"
            cpf_cnpj.DataBindings.Add("Text", ds.Tables(0), "cpf_cnpj"

Na primeira linha, cpf_cnpj.DataBindings.Clear(), eu zero o databinding e o código só pega o CPF ou CNPJ do primeiro registro toda hora.

Continua a procura por um código para colocar mascara na textbox e a função para validar campos não prenchidos no formulario com mensagem de cada uma.

Se alguém puder ajudar!

Link para o comentário
Compartilhar em outros sites

  • 0

Será que alguém pode me ajudar?

Tudo o que eu quero é o seguinte.

Na minha tabela de clientes, tem um campo "tipo" que guarda se o cliente é f ou j (Fisica ou Juridica)

Tem outro campo que guarda o CPF ou CNPJ dependendo do tipo de pessoa que é selecionada na hora de preencher o formulario. O campo se chama cpof_cnpj.

No formulario, tenho uma textbox que recebe e envia para o banco o valor da coluna cpf_cnpj

Eu quero é fazer uma mascara de cpf na textbox ou na maskedtextox se na textbox não tiver jeito que quando o checkbox tipo1 estiver "checked", e quan do o checkbox tipo2 estiver "checked", colocar uma mascara de cnpj.

Só isso!

Será que não tem uma forma mais facil não?

Um abç!

Link para o comentário
Compartilhar em outros sites

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,8k
×
×
  • Criar Novo...