unit ConvertGrid3MasterDetailDemoData; interface uses Forms, SysUtils, Classes, DB, cxStyles, ImgList, Controls, cxClasses, cxGridTableView, DBTables; type TConvertGrid3MasterDetailDemoDataDM = class(TDataModule) dsCars: TDataSource; dsOrders: TDataSource; dsCustomers: TDataSource; DataBase: TDataBase; tblCars: TTable; tblOrders: TTable; tblCustomers: TTable; tblCustomersID: TIntegerField; tblCustomersFirstName: TStringField; tblCustomersLastName: TStringField; tblCustomersCompany: TStringField; tblCustomersPrefix: TStringField; tblCustomersTitle: TStringField; tblCustomersAddress: TStringField; tblCustomersCity: TStringField; tblCustomersState: TStringField; tblCustomersZipCode: TStringField; tblCustomersSource: TStringField; tblCustomersCustomer: TStringField; tblCustomersHomePhone: TStringField; tblCustomersFaxPhone: TStringField; tblCustomersSpouse: TStringField; tblCustomersOccupation: TStringField; tblCustomersDescription: TMemoField; tblCustomersName: TStringField; PaymentTypeImages: TImageList; tblOrdersID: TAutoIncField; tblOrdersCustomerID: TIntegerField; tblOrdersProductID: TIntegerField; tblOrdersPurchaseDate: TDateTimeField; tblOrdersTime: TDateTimeField; tblOrdersPaymentType: TStringField; tblOrdersDescription: TMemoField; tblOrdersQuantity: TIntegerField; tblOrdersPaymentAmount: TCurrencyField; tblOrdersCustomer: TStringField; procedure tblCustomersCalcFields(DataSet: TDataSet); private { Private declarations } public { Public declarations } end; var ConvertGrid3MasterDetailDemoDataDM: TConvertGrid3MasterDetailDemoDataDM; implementation {$R *.dfm} procedure TConvertGrid3MasterDetailDemoDataDM.tblCustomersCalcFields( DataSet: TDataSet); begin tblCustomersName.AsString := tblCustomersFirstName.AsString + ' ' + tblCustomersLastName.AsString; end; end.