none
form vendas(somando valores) RRS feed

  • Pergunta

  • boa tarde pessoal,

    bem estou desenvolvendo uma aplicaçao e com algumas dificuldades cheguei aqui, observem a imagem:

    como visto na imagem tenho um listview, que recebe txtquant e txtcodigo (obs:esta buscando o codigo e n o de barras, isso vou fazer a modificacao pra buscar o de barras) que assim que entrar com os valores meu listview carrega os valores., ate ai td bem!

    agora tenho um txttotal, onde quero somar tds os totais de cada linha(obs pode ser mil linhas quero o total de todas) e apresentar o resultado nessa textbox(txttotal).

    exemplo:

    qtde:10 codigo:5656


    codigo....descricao...qtde...uni..total

    5656.......fgfhfgf.......10.....2.....20

    qte:2 cod:6969

    codigo....descricao...qtde...uni..total

    6969.......hgrrere.......2.....5.....10

    total=30

    como fazer?alguem pode ajudar?



    • Editado Di Souza terça-feira, 30 de agosto de 2016 03:53 titulo certo
    segunda-feira, 22 de agosto de 2016 18:07

Respostas

  •  primeiro queria agradecer a tds que me tentaram me ajudar,

    a resposta foi mais simples do que pensei. segue solucao para quem precisar de algo parecido,

      item.SubItems.Add(x.ToString("N"));// e aqui que faco a multiplicacao do valor vindo do banco e a quantidade digitada pelo usuario

    //abaixo dessa parte voce insere isso:

    subtotal += Convert.ToDouble(x.ToString());               
                        lstPesquisa.Items.Add(item);

                        
                    }
                    txtTotal.Text = Convert.ToString(subtotal.ToString());
                }

                catch (Exception ex)
                {

                    throw new Exception(ex.Message.ToString());

                }

     mto obg a todos.


    • Marcado como Resposta Di Souza terça-feira, 30 de agosto de 2016 03:51
    terça-feira, 30 de agosto de 2016 03:51

Todas as Respostas

  • Olá!

    Esse grid é um ListView mesmo ou um DataGridView? Como você está alimentando os dados dele? Através de uma DataTable ou adicionando os valores "na mão"? Poste o código onde você adiciona uma nova linha no grid/listview pra gente dar uma olhada..


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    terça-feira, 23 de agosto de 2016 13:32
    Moderador
  • public override void Pesquisar()
            {

                try
                {

                    //instancio a Classe e o DataTable

                    AcessoDadosProduto acesso = new AcessoDadosProduto(0);// classe de acesso aos dados

                    DataTable dt = new DataTable();// datatable



                    if (txtCodigo.Text != null)// verifico se o meu txtcodigo for diferente de nulo, eu mando pesquisar
                    {
                        dt = acesso.PesquisaID(int.Parse(txtCodigo.Text));


                    }


                    //crio um novo método para carregar os itens no ListView

                    Carregar(dt);

                }

                catch (Exception ex)
                {

                    throw new Exception(ex.Message.ToString());

                }

            }

            public void Carregar(DataTable dt)
            {

                try
                {

                    //carrego os dados no ListView

                    foreach (DataRow dr in dt.Rows)
                    {

                        ListViewItem item = new ListViewItem();

                        item.Text = dr["CODIGOBARRAS"].ToString();

                        item.SubItems.Add(dr["NOMECARNE"].ToString());

                        item.SubItems.Add(txtQuant.Text);

                        item.SubItems.Add(dr["VVENDAKG"].ToString());

                        double x;

                        x = (Convert.ToDouble(txtQuant.Text)) * Convert.ToDouble(dr["VVENDAKG"].ToString());
                        item.SubItems.Add(x.ToString("N"));// e aqui que faco a multiplicacao do valor vindo do banco e a quantidade digitada pelo usuario


                        lstPesquisa.Items.Add(item);

                    }


                }

                catch (Exception ex)
                {

                    throw new Exception(ex.Message.ToString());

                }

            }

    private void txtCodigo_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter) // aqui qdo o usuario apertar a tecla enter, pesquisa o produto, preenche o listview e logo apos limpas as texbox codigo e qtde.
                {
                    Pesquisar();
                    txtQuant.Text = "";
                    txtCodigo.Text="";             

                }
            }
        agora preciso do total da coluna total do meu listview(o resultado da multiplicacao da qtde x valor=total, eu preciso de tds os totais (pode entrar com mil produtos, tem que somar tds), que devem ser somados entre si e apresentar o resultado numa txtboxtotal) 

    tem que colocar um contador, eu ate tentei mais nao sei como construo um para percorrer tds os totais do listview,

    tentei alguns, mais a soma apresentava incoerência.

    sim e um "listview" 

    se alguem achar uma forma melhor, e que pode disponibilizar o codigo eu agradeco.

    utilizo uma classe de acesso a dados(onde declaro as variaveis, crio o metodo:salvar, inserir, deletar, pesquisar)

    datatable e tableadapter(onde faco a ligacao com o banco de dados )

    desde ja agradeco pela atencao!!

                                                                                                                                    
    terça-feira, 23 de agosto de 2016 17:23
  • Bom dia Di Souza,

    Fiz rapidamente uma classe aqui, apenas para testar. Criei um listview em um form. A maneira mais simples que encontrei para somas os valores foi criar um campo static para armazenar os valores que queria somar. Depois foi só mostrar em uma textbox total.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 25 de agosto de 2016 14:09
    Moderador
  • boa tarde Robson William Silva,

    poderia me da um exemplo em codigo?vc utilizou um contador para percorrer a coluna do listview? 

    quinta-feira, 25 de agosto de 2016 18:31
  • Bom dia Di Souza,

    No exemplo que criei fiz com que o botão "Adicionar" somasse as quantidades e adicionasse no campo static "totalProdutos":

    class Produto
        {
            private static int totalProdutos;
            private int quantidadeProdutos;
            private string tipoProduto;
            private int codigoBarras;
            public int Total
            {
                get { return totalProdutos; }
                set { totalProdutos += quantidadeProdutos; }
            }                
            public int Quantidade
            {
                get { return quantidadeProdutos; }
                set { quantidadeProdutos = value; }
            }
            public string Tipo
            {
                get { return tipoProduto; }
                set { tipoProduto = value; }
            }
            public int CodigoBarras
            {
                get { return codigoBarras; }
                set { codigoBarras = value; }
            }

    Botão "Adicionar":

    private void btnAdicionar_Click(object sender, EventArgs e)
    {
          Produto prod = new Produto();
          prod.Tipo = txtTipo.Text;
          prod.Quantidade = int.Parse(txtQuantidade.Text);
          prod.CodigoBarras = int.Parse(txtCodigoBarras.Text);
          prod.Total = prod.Quantidade;
          txtTotal.Text = prod.Total.ToString();
          listView1.Items.Add(prod.Tipo.ToString());
          listView1.Items.Add(prod.CodigoBarras.ToString());
          listView1.Items.Add(prod.Quantidade.ToString));            
    }
    Atenciosamente,

    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 26 de agosto de 2016 14:05
    Moderador
  • Olá Di Souza,

    pesquise sobre C# GROUP BY ROLLUP.

    Abs.


    Leandro de Agostini MCTS - Web Application, Framework 4

    sexta-feira, 26 de agosto de 2016 17:09
  • Bom dia,

    Devido a falta de resposta do usuário

    essa thread está sendo fechada.

    Se o problema ainda estiver ocorrendo,

    favor abrir uma nova thread.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 29 de agosto de 2016 12:14
    Moderador
  •  primeiro queria agradecer a tds que me tentaram me ajudar,

    a resposta foi mais simples do que pensei. segue solucao para quem precisar de algo parecido,

      item.SubItems.Add(x.ToString("N"));// e aqui que faco a multiplicacao do valor vindo do banco e a quantidade digitada pelo usuario

    //abaixo dessa parte voce insere isso:

    subtotal += Convert.ToDouble(x.ToString());               
                        lstPesquisa.Items.Add(item);

                        
                    }
                    txtTotal.Text = Convert.ToString(subtotal.ToString());
                }

                catch (Exception ex)
                {

                    throw new Exception(ex.Message.ToString());

                }

     mto obg a todos.


    • Marcado como Resposta Di Souza terça-feira, 30 de agosto de 2016 03:51
    terça-feira, 30 de agosto de 2016 03:51