Calcular Coluna De Um Dbgrid
Started By Renan Fernandes, 09/12/2004, 15:23
9 replies to this topic
#1
Posted 09/12/2004, 15:23
Salve Galera!
Já li uma matéria na internet sobre isso, mas a explicação era um pouco nebulosa para mim e não entendi.
É o seguinte:
Tenho um DBgrid no meu form com os campos quant, Vunit, Vtotal e total. O campo total está com a propriedade visible em false. O que eu quero fazer é inserir um DBedit no form, e que no DBedit apareça a somatória total da coluna Vtotal e que esta somtória seja grava na tabela corresponente.
Obs.: tabela é Paradox 7.0.
Desde já agradeço.
PS.: é urgente e se alguém puder me dar esta informação omis explicaopossível, ficarei muito grato.
Já li uma matéria na internet sobre isso, mas a explicação era um pouco nebulosa para mim e não entendi.
É o seguinte:
Tenho um DBgrid no meu form com os campos quant, Vunit, Vtotal e total. O campo total está com a propriedade visible em false. O que eu quero fazer é inserir um DBedit no form, e que no DBedit apareça a somatória total da coluna Vtotal e que esta somtória seja grava na tabela corresponente.
Obs.: tabela é Paradox 7.0.
Desde já agradeço.
PS.: é urgente e se alguém puder me dar esta informação omis explicaopossível, ficarei muito grato.
#2
Posted 10/12/2004, 09:32
Vc deve criar um campo calculado, este campo calculado por ser criado em qualquer tipo de dataset (TTable, TQuery, ...).
- Clicar com botão direito sobre o componente;
- Selecionar a opção "Field Editor...";
- Clicar com o botão direito na janela dos campos;
- Selecionar a opção "New Field...";
- Preencher as informações, no seu caso, vai depender do tipo das informações, acredito que o tipo adequado seja usar Float, uma vez que esta travalhando com valores, marcar o tipo "Calculated";
No evento OnCalcFields vc vai criar o procedimento de cálculo, exemplo:
Vamos supor que o nome do seu componete seja TbVenda, exemplo:
- Clicar com botão direito sobre o componente;
- Selecionar a opção "Field Editor...";
- Clicar com o botão direito na janela dos campos;
- Selecionar a opção "New Field...";
- Preencher as informações, no seu caso, vai depender do tipo das informações, acredito que o tipo adequado seja usar Float, uma vez que esta travalhando com valores, marcar o tipo "Calculated";
No evento OnCalcFields vc vai criar o procedimento de cálculo, exemplo:
[nome do seu campo calculado].value := [formula do calculo];
Vamos supor que o nome do seu componete seja TbVenda, exemplo:
TbVendaCampoCalculado.value := TbVendaquant.value * TbVendaVunit.value;
------
Mero mortal!
Mero mortal!
#3
Posted 10/12/2004, 13:16
obigado pela resposta, mas na verdade até aí eu já sabia. oque eu quero mesmo não é calcular dois campos do dbgrid, mas sim calcular uma coluna inteira. Eu quero que no dbEdit que eu vou criar, apareça a somatória da coluna inteira.
Tipo, eu tenho uma coluna onde são inseridos os valores calculados, eu quero tb um Dbedit onde apareça a somatória de todoos os valores calculados.
Agradeço desde já.
Tipo, eu tenho uma coluna onde são inseridos os valores calculados, eu quero tb um Dbedit onde apareça a somatória de todoos os valores calculados.
Agradeço desde já.
#4
Posted 10/12/2004, 14:13
Vc pode usar uma instrução SQL para isso ou varrer o DbGrid como uma matriz.
Abraço.
Abraço.
Contra-baixo - Tablaturas, dicas e ferramentas para baixistas - Hospedagem Grátis - MUBR
Projetos
• Bruno Alves • WebLugar.net •
Fórums
• Ajuda Linux • BrClube • Forum cPanel • webforum • WMS •
Projetos
• Bruno Alves • WebLugar.net •
Fórums
• Ajuda Linux • BrClube • Forum cPanel • webforum • WMS •
#5
Posted 11/12/2004, 14:11
ok, mas será que alguém poderia me explicar como fazer isso? sou iniciante em delphi.
#6
Posted 11/12/2004, 15:35
sql
[ select sum(coluna) as soma from tabela ]
loop
no inicio vc coloca um loop que soma...
tipo um
while not table.eof do
begin
x := x + table.fieldByName('campox').asFloat;
table.next;
end;
{eu acho a primeira opção a melhor....
muito...}
mas,,,
pra que esse tipo de soma??
se a coluna for grande...
você terá problemas de performancezzz...
[ select sum(coluna) as soma from tabela ]
loop
no inicio vc coloca um loop que soma...
tipo um
while not table.eof do
begin
x := x + table.fieldByName('campox').asFloat;
table.next;
end;
{eu acho a primeira opção a melhor....
muito...}
mas,,,
pra que esse tipo de soma??
se a coluna for grande...
você terá problemas de performancezzz...
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...
#7
Posted 11/12/2004, 18:41
É que eu tenho no form uma dbGrid com os valores unitários dos itens e seus valores totais de acordo com a quantidade, e queria que em um dbEdit aparecesse o valor total da venda.
#8
Posted 11/12/2004, 20:19
Em que evento do dbEdit devo inserir essa instrução?
#9
Posted 13/12/2004, 08:59
tipo um programa de compra?
cada item soma o numero * valor com o resto dos itens???
ai vc usa a segunda opção...
primeiro vc declara uma variavel pra ficar mais facil,
ao mostrar esta tabela ou dbdrid vc faz a soma...
e cada vez que você fizer uma alteração na tabela, altere o valor na variável....
e é só mostrar a variavel....
se for só pra mostrar,...
vc coloca uma query nova...
cada item soma o numero * valor com o resto dos itens???
ai vc usa a segunda opção...
primeiro vc declara uma variavel pra ficar mais facil,
ao mostrar esta tabela ou dbdrid vc faz a soma...
e cada vez que você fizer uma alteração na tabela, altere o valor na variável....
e é só mostrar a variavel....
se for só pra mostrar,...
vc coloca uma query nova...
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...
#10
Posted 24/12/2004, 07:18
OK, mas na verdade eu quero que o valor total seja registrado na minha tabela paradox.
E... poderia me explicar passo a passo?
Obrigado
E... poderia me explicar passo a passo?
Obrigado
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)