none
Ajuda com condicional no DataGridView. Porfavoor! RRS feed

  • Pergunta

  • Olá, bom dia!! 

    Quero fazer um cálculo com condicional, usando informações do meu DGV. E jogar o valor desse cálculo em um textbox, mas preciso de ajuda pois sou iniciante e não sei como posso fazer esse código.

    Por exemplo, Se os campos estiverem nulos na coluna Venda, então será subtraído o valor da coluna total, de um valor já prefinido que tenho em um textbox que vou chamar de txtVALORTOTAL.

    Nesse exemplo, digamos que tenho 300.000 no meu txtVALORTOTAL. Então ficaria  300.000 - 12.000 - 113200 - 100902 =  73.898. O valor que teria que aparecer na minha txtVALORTOTAL seria o resultado, 73898.

    Espero que tenha conseguido me explicar.

    Obrigada.

    sábado, 3 de fevereiro de 2018 11:13

Respostas

  • Quando aparecer um ícone de Lâmpada perto de um erro principalmente, pressione as teclas Ctrl + . para ver as sugestões de correção.

    Neste caso o erro quando usou o CultureInfo foi não adicionar o using para o namespace System.Globalization.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    domingo, 11 de fevereiro de 2018 09:55

Todas as Respostas

  • O valor que está no DataGridView foi inserido através de um DataSet/DataTable? Como você diferencia a linha em vermelho em sua fonte de dados?

    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    domingo, 4 de fevereiro de 2018 14:52
  • Olá Juliano, obrigada por me ajudar. 

    O valor inserido no DataGridView vem de um textbox.  Sobre a cor vermelha, a linha sempre vai ficar vermelha quando a coluna venda estiver vazia. 

    Fico no Aguardo! E qualquer coisa é só perguntar que eu mando as informações do projeto 

    Muito obrigada

    domingo, 4 de fevereiro de 2018 20:11
  • Você pode percorrer as linhas do seu DataGridView e para as linhas que precisa você utiliza o valor da subtração. Ex:

    double total = 500; // valor inicial
    
    foreach (DataGridViewRow row in datagridview.Rows)
    {
        if (row.Cells["venda"].Value.ToString() == String.Empty) 
        {
            total -= row.Cells["total"].Value;
        }
    }


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    domingo, 4 de fevereiro de 2018 21:09
  • Olá, boa tarde Juliano.

    Esse código que vc me passou, eu coloco ele no " private void dgvCompras_CellContentClick" ?

    Está dando erro, pode ser que seja pq coloquei no lugar errado. Mas não tenho certeza, dá uma olhada no print. 

    o que está errado? obrigada

    segunda-feira, 5 de fevereiro de 2018 16:48
  • Coloque em algum método que seja executado após adicionar novas linhas no DataGridView.

    No caso o erro é porque a propriedade Value é um Object. Mude a linha com erro para:

    total -= Convert.ToDouble(row.Cells["total"].Value);


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    segunda-feira, 5 de fevereiro de 2018 17:55
  • Olá Juliano,

    Coloquei no botão add do dgv. 

    Coloquei o código exatamente como estava, só alterei a ultima linha como vc disse. *E obrigada pela explicação "No caso o erro é porque a propriedade Value é um Object." Consegui entender pq estava dando erro. ;)

    Mas quando fui testar e cliquei pra add um novo registro, deu erro :/ 

    Tentei de mais 3 maneiras e nenhuma deu certo, tirei print, pode me dizer onde estou errando? Obrigada!


    segunda-feira, 5 de fevereiro de 2018 21:36
  • No caso do txtValorTot você precisa de usar a propriedade Text. Para ambos os locais dos erros você precisa converter para double e informar a cultura pt-br pois provavelmente está usando vírgula para separação dos decimais.

    Ex: 

    string teste = "34,53";
    Console.WriteLine(double.Parse(teste, new CultureInfo("pt-br")));


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    segunda-feira, 5 de fevereiro de 2018 23:49
  • Eu não entendi o que é pra fazer com esse código, e nem onde coloca-lo, então nao consegui testar>:

    Me desculpe a ignorância.

    quarta-feira, 7 de fevereiro de 2018 01:42
  • Onde há o Convert.ToDouble você irá substituir pelo double.Parse. Ex:

    Double total = double.Parse(txtValorTot.Text, new CultureInfo("pt-br"))


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quarta-feira, 7 de fevereiro de 2018 09:35
  • Olá, 

    ainda nao consegui :/ 

    sábado, 10 de fevereiro de 2018 22:27
  • Quando aparecer um ícone de Lâmpada perto de um erro principalmente, pressione as teclas Ctrl + . para ver as sugestões de correção.

    Neste caso o erro quando usou o CultureInfo foi não adicionar o using para o namespace System.Globalization.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    domingo, 11 de fevereiro de 2018 09:55