Fórum Problemas com calculo em dbgrid (onCalcFields) #460427
07/11/2013
0
Boa tarde a todos do fórum!!
Estou com o seguinte problema, tenho uma tabela onde lanço um controle de sessões, então faço assim: lanço uma guia de entrada de 10 sessoes, aí, a cada atendimento faço um lançamento de -1 oque faz que com diminua as sessões remanescentes, certo?, até aí perfeito estava funcionando coisa linda, um select com um group by, filé, só que agora a cliente pediu pra colocar a data da entrada da guia, aí o meu group by já ferrou, então pensei em fazer um campo de saldo tipo calculate e fazer uma formula no oncalcfields, mas oque ocorre é que o primeiro e o ultimo registro não estão sendo calculados... segue abaixo as minhas rotinas....
aqui faço a abertura das guias de entradas (as que tem a data que preciso) e depois abro o form da relação de guias do cliente..
aí no oncalcfields abro uma query que pega as sessões realizadas pra poder fazer o calculo : entrada - usada = saldo de sessões disponiveis..
vou descrever oque acontece abaixo:
um cliente com 2 guias 2323 e 2424, na guia 2323 ele ja foi atendido todas as vezes e na 2424 ainda resta uma sessão e na grid esta aparecendo assim
2323 10
2424 1
se tiver mais guias, acontece de não calcular sempre com o primeiro e o ultimo registro...
as vezes pode ser algo simples de resolver, mas não estou conseguindo resolver, desde já agradeço a ajuda..
abs;;;
Estou com o seguinte problema, tenho uma tabela onde lanço um controle de sessões, então faço assim: lanço uma guia de entrada de 10 sessoes, aí, a cada atendimento faço um lançamento de -1 oque faz que com diminua as sessões remanescentes, certo?, até aí perfeito estava funcionando coisa linda, um select com um group by, filé, só que agora a cliente pediu pra colocar a data da entrada da guia, aí o meu group by já ferrou, então pensei em fazer um campo de saldo tipo calculate e fazer uma formula no oncalcfields, mas oque ocorre é que o primeiro e o ultimo registro não estão sendo calculados... segue abaixo as minhas rotinas....
aqui faço a abertura das guias de entradas (as que tem a data que preciso) e depois abro o form da relação de guias do cliente..
FSessoes.Qsessoes.Close;
FSessoes.QSessoes.Parameters[0].Value := edCodPac.Text;
FSessoes.QSessoes.Open;
FSessoes.QSessoes.First;
FSessoes.ShowModal;
aí no oncalcfields abro uma query que pega as sessões realizadas pra poder fazer o calculo : entrada - usada = saldo de sessões disponiveis..
QView.Close; QView.Open; QSessoesI01_SALDO.Value := QSessoesI01_QTDSESSOES.AsInteger + QViewSOMA.AsInteger;
vou descrever oque acontece abaixo:
um cliente com 2 guias 2323 e 2424, na guia 2323 ele ja foi atendido todas as vezes e na 2424 ainda resta uma sessão e na grid esta aparecendo assim
2323 10
2424 1
se tiver mais guias, acontece de não calcular sempre com o primeiro e o ultimo registro...
as vezes pode ser algo simples de resolver, mas não estou conseguindo resolver, desde já agradeço a ajuda..
abs;;;
Lindolfo Junior
Curtir tópico
+ 0
Responder
Posts
08/11/2013
Pjrm1470
Boa tarde a todos do fórum!!
Estou com o seguinte problema, tenho uma tabela onde lanço um controle de sessões, então faço assim: lanço uma guia de entrada de 10 sessoes, aí, a cada atendimento faço um lançamento de -1 oque faz que com diminua as sessões remanescentes, certo?, até aí perfeito estava funcionando coisa linda, um select com um group by, filé, só que agora a cliente pediu pra colocar a data da entrada da guia, aí o meu group by já ferrou, então pensei em fazer um campo de saldo tipo calculate e fazer uma formula no oncalcfields, mas oque ocorre é que o primeiro e o ultimo registro não estão sendo calculados... segue abaixo as minhas rotinas....
aqui faço a abertura das guias de entradas (as que tem a data que preciso) e depois abro o form da relação de guias do cliente..
aí no oncalcfields abro uma query que pega as sessões realizadas pra poder fazer o calculo : entrada - usada = saldo de sessões disponiveis..
vou descrever oque acontece abaixo:
um cliente com 2 guias 2323 e 2424, na guia 2323 ele ja foi atendido todas as vezes e na 2424 ainda resta uma sessão e na grid esta aparecendo assim
2323 10
2424 1
se tiver mais guias, acontece de não calcular sempre com o primeiro e o ultimo registro...
as vezes pode ser algo simples de resolver, mas não estou conseguindo resolver, desde já agradeço a ajuda..
abs;;;
Estou com o seguinte problema, tenho uma tabela onde lanço um controle de sessões, então faço assim: lanço uma guia de entrada de 10 sessoes, aí, a cada atendimento faço um lançamento de -1 oque faz que com diminua as sessões remanescentes, certo?, até aí perfeito estava funcionando coisa linda, um select com um group by, filé, só que agora a cliente pediu pra colocar a data da entrada da guia, aí o meu group by já ferrou, então pensei em fazer um campo de saldo tipo calculate e fazer uma formula no oncalcfields, mas oque ocorre é que o primeiro e o ultimo registro não estão sendo calculados... segue abaixo as minhas rotinas....
aqui faço a abertura das guias de entradas (as que tem a data que preciso) e depois abro o form da relação de guias do cliente..
FSessoes.Qsessoes.Close;
FSessoes.QSessoes.Parameters[0].Value := edCodPac.Text;
FSessoes.QSessoes.Open;
FSessoes.QSessoes.First;
FSessoes.ShowModal;
aí no oncalcfields abro uma query que pega as sessões realizadas pra poder fazer o calculo : entrada - usada = saldo de sessões disponiveis..
QView.Close; QView.Open; QSessoesI01_SALDO.Value := QSessoesI01_QTDSESSOES.AsInteger + QViewSOMA.AsInteger;
vou descrever oque acontece abaixo:
um cliente com 2 guias 2323 e 2424, na guia 2323 ele ja foi atendido todas as vezes e na 2424 ainda resta uma sessão e na grid esta aparecendo assim
2323 10
2424 1
se tiver mais guias, acontece de não calcular sempre com o primeiro e o ultimo registro...
as vezes pode ser algo simples de resolver, mas não estou conseguindo resolver, desde já agradeço a ajuda..
abs;;;
Seu campo "I01_SALDO" é do tipo Calc (Calculado)?
OnCalcFields so atribui valor para campos de tipo calculado. Talvez esse seja o problema.
Abraço.
Responder
Gostei + 0
08/11/2013
Lindolfo Junior
opa, obrigado pela atenção!!!
o campo é do tipo calc sim, na verdade o calculo esta sendo realizado, só que ele calcula somente os valores do meio, o primeiro e o ultimo, quando mexo na barra de rolagem vai variando, tem hora que aparece calculado, se mexo na barra não calcula, e fica assim... doidão...
JR
o campo é do tipo calc sim, na verdade o calculo esta sendo realizado, só que ele calcula somente os valores do meio, o primeiro e o ultimo, quando mexo na barra de rolagem vai variando, tem hora que aparece calculado, se mexo na barra não calcula, e fica assim... doidão...
JR
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)