Campo subtotal não funciona! (Delphi7 BDE Paradox 7)

24/01/2006

0

Ae galera, preciso de ajuda, estou fazendo um form para fazer orçamentos, está tudo certo, tenho vários campos onde se coloca os dados dos produtos, incluindo um campo total de cada um deles (preço*quantidade), o único problema é que o campo subtotal (statictext) não está demonstrando nada, quando deveria mostrar a soma de todos os totais dos produtos. Aqui vai a codificação do subtotal:

procedure TFormCadPedidos.RecalculaPedido;
var
TmpTable: TTable;
Total: Currency; // armazena valores do tipo moeda
begin
// cria um objeto Table via codificação
TmpTable := TTable.Create(Application);
try
// define DatabaseName e TableName via codificação
TmpTable.DatabaseName := TableItens.DatabaseName;
TmpTable.TableName := TableItens.TableName;
TmpTable.Open;
TmpTable.FindKey([TablePedidosNumeroPedido.AsInteger]);
Total := 0; // inicializa a variavel totalizadora
while (not TmpTable.Eof) and
(TmpTable.FieldByName(´NumeroPedido´).AsInteger =
TablePedidosNumeroPedido.AsInteger) do
begin
// Acumula o Total da linha
Total := Total + (TmpTable.FieldByName(´Preco´).AsFloat *
TmpTable.FieldByName(´Quantidade´).AsFloat);
TmpTable.Next; // próximo registro
end;
finally
TmpTable.Close; // fecha a tabela
TmpTable.Free; // libera objeto da memória
end;
StaticTextTotal.Caption := FormatCurr(´#,,0.00´, Total);
end;

procedure TFormcadpedidos.TableitensCalcFields(DataSet: TDataSet);
begin
if (TableItensQuantidade.AsFloat > 0) and
(TableItensPreco.AsCurrency > 0) then
TableItensTotal.AsCurrency := TableItensPreco.AsCurrency *
TableItensQuantidade.AsFloat;
RecalculaPedido; // recalcula e exibe novamente

end;

Não consigo entender onde errei!


Pdutrappd

Pdutrappd

Responder

Posts

24/01/2006

Thomaz_prg

Troque seu componente (statictext) por um Label.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar