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!
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
Curtir tópico
+ 0
Responder
Posts
Clique aqui para fazer login e interagir na Comunidade :)