私はDBGridを持っていますが、私は請求シートを作成しようとしていますが、計算をしないことがあります。どうすればそれを避けることができますか?Dbgrid計算
私はあなたが(いくつかのグリッド列がフォーカスを失うのイベントのような)ユーザーインタラクションロジックで(合計を計算するなど)、ビジネスロジックを混合しているし、それはあなたのアプリケーションの誤動作の原因だと思うprocedure TOrcamentos.DBGridEh1ColExit(Sender: TObject);
var
percent: double;
Unid: double;
tot: currency;
vaz: string;
begin
if Dorcamen_SUB.DataSet.State in [dsEdit, dsInsert] then
try
Dorcamen_SUB.DataSet.Post;
finally
vaz := DBGridEh1.Columns[3].Field.text;
if (vaz<> '') then
try
Torcamen_SUB.Edit;
Unid := (Torcamen_SUB.FieldByName('QT').AsFloat);
tot := (Torcamen_SUB.FieldByName('Precovenda').AsFloat);
percent := (Torcamen_SUB.FieldByName('Desconto').AsFloat);
try
tot := tot+(tot * percent)/ 100;
finally
Torcamen_SUB.FieldByName('Total').AsFloat := unid*tot;
Torcamen_SUB.Post;
Orcamentos.TotalExecute(self);
end;
except
end;
end;
end;
あなたはあなたが正しいとタックはsayngです。私はプロセスに再ありがとうございます。 –
私はMdbを使用しています。データベースと私がTAggregateFieldを作ることを望むとき、それは私がリンクのようにそれをすることを許す。それには道がありますか? –
@ml ClientDataSetsを使用していますか? – jachguate