aliquotaDesconto := 0
vTotalProdutos := 105,00
vTotalDesconto := 20,00
ItensNota.Fist;
while not ItensNota.eof do begin
aliquotaDesconto := ItensNota.ValorTotaldoItem / vTotalProdutos;
valorDescontoRateado := aliquotaDesconto * vTotalDesconto;
ItensNota.edit;
ItensNota.ValorDesconto := valorDescontoRateado;
ItensNota.post;
// fazendo a subtração do valor total do produto e do total do desconto
// não sobra valor, devido ao valor do último ValorTotaldoItem ser igual ao vTotalProdutos
// o desconto será o valor total de vTotalDesconto
vTotalProdutos := vTotalProdutos - ItensNota.ValorTotaldoItem;
vTotalDesconto := vTotalDesconto - valorDescontoRateado;
ItensNota.next
end;