Usuário com melhor resposta
form vendas(somando valores)

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
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
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 -
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!!
-
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.
-
boa tarde Robson William Silva,
poderia me da um exemplo em codigo?vc utilizou um contador para percorrer a coluna do listview?
-
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.
-
Olá Di Souza,
pesquise sobre C# GROUP BY ROLLUP.
Abs.
Leandro de Agostini MCTS - Web Application, Framework 4
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 29 de agosto de 2016 12:14
- Não Marcado como Resposta Di Souza terça-feira, 30 de agosto de 2016 03:51
-
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.
-
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