FAZER CALCULO DENTRO DO FLEXGRID
pessoal, como eu faço para fazer uma soma dentro do grid?
exemplo:
eu uma coluna preco e outra quantidade. como eu faço para pegar o valor que está na coluna preco e multiplicar pelo valor que está na coluna quantidade. depois mostrar o resultado em uma célula à  parte do grid.
como eu faço isso?
exemplo:
eu uma coluna preco e outra quantidade. como eu faço para pegar o valor que está na coluna preco e multiplicar pelo valor que está na coluna quantidade. depois mostrar o resultado em uma célula à  parte do grid.
como eu faço isso?
Rafa tenta o seguinte
Imaginando que o valor está na coluna 1, a quantidade na coluna 2 e o total na coluna 3.
seuflex.textmatrix(linha,3) = cdbl(seuflex.textmatrix(linha,1)) * cdbl(seuflex.textmatrix(linha,2))
linha é a linha onde vai ser calculado os valores.
Atenciosamente
Jadson Gois
Imaginando que o valor está na coluna 1, a quantidade na coluna 2 e o total na coluna 3.
seuflex.textmatrix(linha,3) = cdbl(seuflex.textmatrix(linha,1)) * cdbl(seuflex.textmatrix(linha,2))
linha é a linha onde vai ser calculado os valores.
Atenciosamente
Jadson Gois
caso vc esteja pegando esses dados de um banco, faça essa conta quando vc estiver alimentando o grid:
ai fica da seguinte maneira:
grid.textmatrix(lin,3) = <campo do BD Preço> * <campo do BD quantidade>
Até mais...
ai fica da seguinte maneira:
grid.textmatrix(lin,3) = <campo do BD Preço> * <campo do BD quantidade>
Até mais...
blzz.
mais me explica uma coisa.
na coluna total eu vou ter vários valores. e quero fazer a soma desses valores.
como faço para que o resultado dessa soma apareça na mesma coluna total na última linha?
como acontece no excel.
como faço isso?
mais me explica uma coisa.
na coluna total eu vou ter vários valores. e quero fazer a soma desses valores.
como faço para que o resultado dessa soma apareça na mesma coluna total na última linha?
como acontece no excel.
como faço isso?
Dim i As Integer
Dim aux As Double
For i = 1 To MSHFlexGrid1.Rows - 1
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = 1 'coluna que vc quer somar
aux = aux + MSHFlexGrid1.Text
label1.Caption = aux 'local onde vc quer exibir a soma
Next
onde MSHFlexGrid1 vc coloca o nome do seu grid
Dim aux As Double
For i = 1 To MSHFlexGrid1.Rows - 1
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = 1 'coluna que vc quer somar
aux = aux + MSHFlexGrid1.Text
label1.Caption = aux 'local onde vc quer exibir a soma
Next
onde MSHFlexGrid1 vc coloca o nome do seu grid
meu grid tem 10 linhas e 3 colunas.
está dando erro nessa linha do código que vc me passou:
aux = aux + MSFlexGrid1.Text
estou fazendo esse código:
MSFlexGrid1.TextMatrix(1, 0) = 1
MSFlexGrid1.TextMatrix(1, 1) = 2
MSFlexGrid1.TextMatrix(2, 0) = 3
MSFlexGrid1.TextMatrix(2, 1) = 4
MSFlexGrid1.TextMatrix(1, 2) = CDbl(MSFlexGrid1.TextMatrix(1, 0)) * CDbl(MSFlexGrid1.TextMatrix(1, 1))
Dim i As Integer
Dim aux As Double
For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1 'coluna que vc quer somar
aux = aux + MSFlexGrid1.Text
Label2.Caption = aux 'local onde vc quer exibir a soma
Next
me ajude,
valeu
está dando erro nessa linha do código que vc me passou:
aux = aux + MSFlexGrid1.Text
estou fazendo esse código:
MSFlexGrid1.TextMatrix(1, 0) = 1
MSFlexGrid1.TextMatrix(1, 1) = 2
MSFlexGrid1.TextMatrix(2, 0) = 3
MSFlexGrid1.TextMatrix(2, 1) = 4
MSFlexGrid1.TextMatrix(1, 2) = CDbl(MSFlexGrid1.TextMatrix(1, 0)) * CDbl(MSFlexGrid1.TextMatrix(1, 1))
Dim i As Integer
Dim aux As Double
For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1 'coluna que vc quer somar
aux = aux + MSFlexGrid1.Text
Label2.Caption = aux 'local onde vc quer exibir a soma
Next
me ajude,
valeu
coloque um valor para a variavel aux tipo 0 antes de vc começar o loop
Pelo que tive analizando tbm o seu i tem que ser igual a 2 pois vc começa a distribuir os dados apartir da linha dois
mudei. e criei a variável como vc falou.
ele dá outro erro. que é o famoso type mismatch.
olha como fiz o código:
MSFlexGrid1.TextMatrix(1, 0) = 1
MSFlexGrid1.TextMatrix(2, 0) = 2
'MSFlexGrid1.TextMatrix(2, 0) = 3
'MSFlexGrid1.TextMatrix(2, 1) = 4
'MSFlexGrid1.TextMatrix(1, 2) = CDbl(MSFlexGrid1.TextMatrix(1, 0)) * CDbl(MSFlexGrid1.TextMatrix(1, 1))
Dim i As Integer
Dim aux As Double
aux = 0
For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0 'coluna que vc quer somar
aux = aux + MSFlexGrid1.Text
Label2.Caption = aux 'local onde vc quer exibir a soma
Next
corrija, por favor o que estiver errado.
valeu
ele dá outro erro. que é o famoso type mismatch.
olha como fiz o código:
MSFlexGrid1.TextMatrix(1, 0) = 1
MSFlexGrid1.TextMatrix(2, 0) = 2
'MSFlexGrid1.TextMatrix(2, 0) = 3
'MSFlexGrid1.TextMatrix(2, 1) = 4
'MSFlexGrid1.TextMatrix(1, 2) = CDbl(MSFlexGrid1.TextMatrix(1, 0)) * CDbl(MSFlexGrid1.TextMatrix(1, 1))
Dim i As Integer
Dim aux As Double
aux = 0
For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0 'coluna que vc quer somar
aux = aux + MSFlexGrid1.Text
Label2.Caption = aux 'local onde vc quer exibir a soma
Next
corrija, por favor o que estiver errado.
valeu
Ta dando o erro na hora que vc atribui o valor a variavel aux?
Tente assim:
MSFlexGrid1.TextMatrix(1, 0) = 1
MSFlexGrid1.TextMatrix(2, 0) = 2
'MSFlexGrid1.TextMatrix(2, 0) = 3
'MSFlexGrid1.TextMatrix(2, 1) = 4
'MSFlexGrid1.TextMatrix(1, 2) = CDbl(MSFlexGrid1.TextMatrix(1, 0)) * CDbl(MSFlexGrid1.TextMatrix(1, 1))
Dim i As Integer
Dim aux As Double
For i = 2 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0 'coluna que vc quer somar
aux = aux + MSFlexGrid1.Text
Label2.Caption = aux 'local onde vc quer exibir a soma
Next
Tente assim:
MSFlexGrid1.TextMatrix(1, 0) = 1
MSFlexGrid1.TextMatrix(2, 0) = 2
'MSFlexGrid1.TextMatrix(2, 0) = 3
'MSFlexGrid1.TextMatrix(2, 1) = 4
'MSFlexGrid1.TextMatrix(1, 2) = CDbl(MSFlexGrid1.TextMatrix(1, 0)) * CDbl(MSFlexGrid1.TextMatrix(1, 1))
Dim i As Integer
Dim aux As Double
For i = 2 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0 'coluna que vc quer somar
aux = aux + MSFlexGrid1.Text
Label2.Caption = aux 'local onde vc quer exibir a soma
Next
continua dando erro nessa linha:
aux = aux + MSFlexGrid1.Text
mesmo eu atribuindo 0 ao aux.
quando i era igual 1 ele fazia a soma e jogava na variável aux.
só que ele dava o mesmo erro.
o que poder ser?
vc tem algum exemplo que funcione? ou vc pode corrigir pra mim?
valeu
aux = aux + MSFlexGrid1.Text
mesmo eu atribuindo 0 ao aux.
quando i era igual 1 ele fazia a soma e jogava na variável aux.
só que ele dava o mesmo erro.
o que poder ser?
vc tem algum exemplo que funcione? ou vc pode corrigir pra mim?
valeu
Tópico encerrado , respostas não são mais permitidas