在Delphi中,可以使用OnEditChange事件来实现输入数量和单价时自动计算金额,以及输入数量和金额时自动计算单价的功能。

以下是示例代码:

procedure TForm1.DBGridEHEditingDone(Sender: TObject);
var
  Quantity, Price, Amount: Double;
begin
  // 计算金额
  if (DBGridEH.DataSource.DataSet.FieldByName('Quantity').AsString <> '') and
    (DBGridEH.DataSource.DataSet.FieldByName('Price').AsString <> '') then
  begin
    Quantity := DBGridEH.DataSource.DataSet.FieldByName('Quantity').AsFloat;
    Price := DBGridEH.DataSource.DataSet.FieldByName('Price').AsFloat;
    Amount := Quantity * Price;
    DBGridEH.DataSource.DataSet.FieldByName('Amount').AsFloat := Amount;
  end;

  // 计算单价
  if (DBGridEH.DataSource.DataSet.FieldByName('Quantity').AsString <> '') and
    (DBGridEH.DataSource.DataSet.FieldByName('Amount').AsString <> '') then
  begin
    Quantity := DBGridEH.DataSource.DataSet.FieldByName('Quantity').AsFloat;
    Amount := DBGridEH.DataSource.DataSet.FieldByName('Amount').AsFloat;
    Price := Amount / Quantity;
    DBGridEH.DataSource.DataSet.FieldByName('Price').AsFloat := Price;
  end;
end;

上述代码假设DBGridEH是你的TDBGridEh组件的名称,QuantityPriceAmount是对应的字段名。你需要将代码放在DBGridEHEditingDone事件中。

请注意,上述代码只是一个示例,你需要根据你的实际需求进行适当的修改。


原文地址: https://www.cveoy.top/t/topic/qoZ2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录