HandleProductSelection
在表单(或数据模块)中声明一个方法:
procedure HandleProductSelection(Sender: TField);
将AfterOpen
处理程序附加到 OrderTable。在该事件处理程序中,找到产品代码字段并将 HandleProductSelection 方法附加到该字段的 OnChange 事件。
procedure TForm1.OrderTableAfterOpen(DataSet: TDataSet);
var
Field: TField;
begin
Field := OrderTable.FindField('PCode');
Field.OnChange := HandleProductSelection;
end;
这确保了无论何时打开 OrderTable,事件处理程序都将附加到正确的字段,进而确保在产品代码字段的内容发生更改时调用 HandleProductSelection 方法。
实现 HandleProductSelection 方法。如果您使用字段编辑器定义了产品代码的查找字段,那么您的表单(或数据模块)上有一个产品数据集。然后将根据您的 OrderTable 的当前记录中的 Product code 字段的值来定位具有产品信息的数据集。
您可以在 HandleProductSelection 方法中利用这一点,只需将信息从 Product 数据集传输到 OrderTable:
procedure TForm1.HandleProductSelection(Sender: TField);
begin
OrderTable.FieldByName('PPrice').AsCurrency :=
DataSetProduct.FieldByName('PPrice').AsCurrency;
end;