campo aggregate clientdataset não soma corretamente

Delphi

Firebird

23/03/2021

bom dia

tenho um clientdataset onde foi criado um novo field do tipo agreggate. nele tem a expression sum(valor_final) do tipo data.
esse clientdataset está presente na tela de venda. ao adicionar e alterar um item informo o campo valor_final.

ao salvar a venda em si, no total da mesma uso esse aggregate:
RoundTo(StrToFloat(VarToStrDef(CdsTeste.FieldByName('TOTAL_VALORFINAL').Value, '0')), -2)

mas em alguns momentos não soma um item.
ex: 4 itens com valor final de R$ 100,00, no total da venda salva R$ 80,00. justamente o valor final de um dos itens.

alguém teria alguma ideia? uso o Delphi xe2, firebird 2.5
Cristiane

Cristiane

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

23/03/2021

não tem muito typecast aí não?

RoundTo(CdsTeste.FieldByName('TOTAL_VALORFINAL').AsFloat, -2)

o aggregate soma o campo valor_final. seu conteúdo está certo? é um campo físico ou também é um campo virtual?

GOSTEI 0
Cristiane

Cristiane

23/03/2021

valor_final é um campo data tipo float no clientDataset e está sendo preenchido no momento de alterar e adicionar o item com o valor total do mesmo (quantidade * valor_unitário)
não entendo porque fica um item de fora aleatoriamente, pois não é sempre que isso acontece.

não tem muito typecast aí não?

RoundTo(CdsTeste.FieldByName('TOTAL_VALORFINAL').AsFloat, -2)

o aggregate soma o campo valor_final. seu conteúdo está certo? é um campo físico ou também é um campo virtual?

GOSTEI 0
POSTAR