Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

antoniosete

[Resolvido] somar dados no datagridview

Mensagens Recomendadas

antoniosete

Boas

estou a trabalhar com um datagrid e o que eu quero fazer é o seguinte:

tenho uma coluna com o numero do empregado e mais três colunas com três tipos de matérias diferentes.Como faço para que quando insira o numero do empregado numa textbox me apareça numa MessageBox.Show tudo o que ele levantou de material.O que eu queria era que através do numero o programa percorres toda alinha e disse-se o que o empregado x levantou e soma-se.Mas ha outro problema o mesmo empregado pode levantar vários materiais em em tempos diferentes ou seja o numero do empregado podia aparecer varias vezes na coluna.O que eu tenho de código é isto mas...não consigo chegar lá.

Estou a ir buscar os dados a outra windosform e nesta windosform faço a pesquisa atraves da datagrid

int n = 0;
int z =  0;
int b1 = 0, b2 = 0, b3 = 0;
n = Convert.ToInt32(texnumero.Text);
if (Convert.ToInt32(grade1.Rows[z].Cells[1].Value) == n)


for (int i = 0; i < grade1.Rows.Count; ++i)
               {

                   b1 += Convert.ToInt32(grade1.Rows[i].Cells[2].Value);
                   b2 += Convert.ToInt32(grade1.Rows[i].Cells[3].Value);
                   b3 += Convert.ToInt32(grade1.Rows[i].Cells[4].Value);
}
MessageBox.Show("chave1---------\t" + b1 + "\nchave2--------\t" + b2 + "\nchave3----------\t" + b3);

Editado por pmg
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NoLabel

Se percebi bem tens um datagrid que tem 4 colunas, sendo que a primeira é o id do empregado e as restantes são tipos de material. Cada vez que um empregado levanta material é inserida uma nova row, certo? Se assim for, porque não usas loop para percorrer todas as rows existentes no datagrid, comparas o id com o inserido na textbox, se for igual incrementas numa variável o valor de material levantado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antoniosete

Sim é um datagrid que tem 5 colunas a primeira e´o id da base de dados a segunda é o numero do empregado é nesta que eu quero fazer a pesquisa e comparação.para que no MessageBox.show venha descriminado o que ele levantou e a quantidade de cada produto EX:

O empregado X levantou a ( numero de vezes)chave1 + b1+ a chave2 +b2+ e a chave3 +b3

Assim faço a contagem depois da comparação

for (int i = 0; i < grade1.Rows.Count; ++i)
{

b1 += Convert.ToInt32(grade1.Rows[i].Cells[2].Value);
b2 += Convert.ToInt32(grade1.Rows[i].Cells[3].Value);
b3 += Convert.ToInt32(grade1.Rows[i].Cells[4].Value);
}
MessageBox.Show("chave1---------\t" + b1 + "\nchave2--------\t" + b2 + "\nchave3----------\t" + b3);

se poderes me dar uma ajuda agradeço

Editado por pmg
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rezanov
int b1 = 0;
	 int b2 = 0;
	 int b3 = 0;

	 foreach (DataGridViewRow row in dataGridView1.Rows)
	 {
		 if (row.Cells["id_empregado"].Value.ToString() == "IDX")
		 {
			 b1 += Convert.ToInt32(row.Cells["coluna_chave1"].Value.ToString());
			 b2 += Convert.ToInt32(row.Cells["coluna_chave2"].Value.ToString());
			 b3 += Convert.ToInt32(row.Cells["coluna_chave3"].Value.ToString());
		 }
	 }
	 MessageBox.Show(string.Format("chave1: {0} chave2: {1} chave3: {2}", b1, b2, b3));

Editado por rezanov

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.