Fórum Problemas com onCalcFields #358035
06/05/2008
0
Meu problema é o seguinte:
a cada registro tenho q calcular o saldo referente a movimentações anteriores. ex:
COD__DÉBITO___ CRÉDITO____CRE - DEB______SALDO
1_______100_______250 _________150________150
2_______300________50 ________ -250_______-100
3________10 _______ 10___________ 0_______-100
4_________0_______100_________ 100__________0
5________50_________0__________-50________-50
6________20_______500__________480_______ 430
Bom.. estou calculando isso em memória e está indo tudo bem, exceto quando eu movimento o scrool do DbGrid para cima, pois meu calculo tem q vir do primeiro registro para o último.
Se eu bloqueio o Cálculo meu Field fica nulo.
Eu consegui em alguns eventos do dbgrid da seguinte forma:
´SE CAMPO_SALDO FOR NULO ENTAO EXECUTA ONCALCFIELDS´
mas nao fico do jeito que eu necessito, pois eu não consegui achar um evento q executa na hora exata.
Agradecido
Diegolambaum
Curtir tópico
+ 0Posts
06/05/2008
Joaoshi
- Deixar a coluna CRE DEB e SALDO criadas (não como calcfields)
- Obter as informações COD, DÉBITO E CRÉDITO.
- Dar um disablecontrols no DataSet.
- Ler o arquivo do inicio ao fim e efetuar a soma.
- Dar um EnableControls
Se você estiver utilizando um SELECT poderia criar uma procedure para retornar os valores.
Espero ter ajudado.
Gostei + 0
06/05/2008
Diegolambaum
ele já está funcionado.. só dá problema no calculo quando eu uso o scrool do dbgrid, pois ele executa o onCalcField e eu nao consigo nessa hora dar um first.. eu precisava mesmo de evento que executasse quando rolassem o scroll.
o dataset tem esse evento.. mas se uso um first lá ou algo parecido o sistema entra em redundância.
Gostei + 0
06/05/2008
Diegolambaum
Obrigado
Gostei + 0
06/05/2008
Brunolspp
if dataset.state = dsInternalCalc then
begin
....
//colocar os codigos dos campos calculados aqui
...
end;
Gostei + 0
06/05/2008
Diegolambaum
mesmo assim eu tentei esse codigo do .state mas nao deu certo
ao meu ponto de vista tudo que preciso é de um evento que execute quando o scrool do dbgrid role.. que ai nessa hora é eu dar um first e depois executar o onCalcField eu volto o registro pelo recno
Obrigado a todos
Gostei + 0
06/05/2008
Diegolambaum
Utilizei o evento onDataChange do datasource e flags para controlar a hora certa de disparar os eventos
Bom.. essa foi a primeira vez que participo de um forum e espero participar mais vezes
Obrigado pela ajuda
Gostei + 0
06/05/2008
Ffabiop
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)