Jump to content


Photo

Calcular Coluna De Um Dbgrid


  • Faça o login para participar
9 replies to this topic

#1 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 09/12/2004, 15:23

(y) 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.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#2 Prog

Prog

    ...

  • Ex-Admins
  • 3761 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro/RJ
  • Interesses:TI, Software Livre, Design Digital e Rock'n'Roll.

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:
[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!

#3 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

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á.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#4 brunoalves

brunoalves

    Linux user #392843

  • Ex-Admins
  • 1018 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 10/12/2004, 14:13

Vc pode usar uma instrução SQL para isso ou varrer o DbGrid como uma matriz.

Abraço.

#5 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 11/12/2004, 14:11

ok, mas será que alguém poderia me explicar como fazer isso? sou iniciante em delphi.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#6 proteus_adi

proteus_adi

    @handle:=proteus;//>>>

  • Usuários
  • 309 posts
  • Sexo:Não informado
  • Localidade:Minas Gerais>> Belo Horizonte
  • Interesses:Programação e Web>>>

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...
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...

#7 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

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.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#8 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 11/12/2004, 20:19

Em que evento do dbEdit devo inserir essa instrução?

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#9 proteus_adi

proteus_adi

    @handle:=proteus;//>>>

  • Usuários
  • 309 posts
  • Sexo:Não informado
  • Localidade:Minas Gerais>> Belo Horizonte
  • Interesses:Programação e Web>>>

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...
PROTEUS [ADSUMUS]
ETERNAL ########
---------------------------------------------------------------
"Já dizia o mestre: PROGRAMAR é diferente de CODIFICAR"...

#10 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

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 (y)

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq