フォーム (またはデータモジュール) でメソッドを宣言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 データセットから OrderTable に情報を転送するだけで、HandleProductSelection メソッドでこれを利用できます。
procedure TForm1.HandleProductSelection(Sender: TField);
begin
OrderTable.FieldByName('PPrice').AsCurrency :=
DataSetProduct.FieldByName('PPrice').AsCurrency;
end;