unit fClientForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, uROClient, uROClientIntf, uRORemoteService, uROBinMessage, Grids, DBGrids, uROPoweredByRemObjectsButton, uDAPoweredByDataAbstractButton, ExtCtrls; type TClientForm = class(TForm) Panel1: TPanel; DAPoweredByDataAbstractButton1: TDAPoweredByDataAbstractButton; Label1: TLabel; cbInsertTo: TComboBox; Label2: TLabel; edFilter: TEdit; chFilterOn: TCheckBox; Panel2: TPanel; btLoad: TButton; btInsert: TButton; btUpdate: TButton; btDelete: TButton; dgData: TDBGrid; procedure FormCreate(Sender: TObject); procedure btLoadClick(Sender: TObject); procedure chFilterOnClick(Sender: TObject); procedure btInsertClick(Sender: TObject); procedure btUpdateClick(Sender: TObject); procedure btDeleteClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var ClientForm: TClientForm; implementation uses fClientDataModule, uDAInterfaces, DB; {$R *.dfm} procedure TClientForm.btDeleteClick(Sender: TObject); begin with ClientDataModule.tbl_UnionAddresses do if RecordCount > 0 then Delete; end; procedure TClientForm.btInsertClick(Sender: TObject); var id: TGUID; begin CreateGUID(id); ClientDataModule.tbl_UnionAddresses.AddRecord( ['Id', 'Name', 'ContactPhone', 'ContactAddress', '@SourceTable'], [GuidToString(id), 'John Doe', '(000)111-222-333', 'Planet Earth', cbInsertTo.ItemIndex]); end; procedure TClientForm.btLoadClick(Sender: TObject); var exp: TDAWhereExpression; expArr: array of TDAWhereExpression; wb: TDAWhereBuilder; begin with ClientDataModule do begin tbl_UnionAddresses.ClearRows(true); if chFilterOn.Checked and (Trim(edFilter.Text) <> '') then begin wb := TDAWhereBuilder.Create; exp := wb.NewBinaryExpression( wb.NewField(tbl_UnionAddresses.LogicalName, 'Name'), wb.NewConstant('%' + Trim(edFilter.Text) + '%', datString), dboLike); SetLength(expArr, 1); expArr[0] := exp; RemoteDataAdapter.Fill([tbl_UnionAddresses], expArr); wb.Free; end else RemoteDataAdapter.Fill([tbl_UnionAddresses]); end; end; procedure TClientForm.btUpdateClick(Sender: TObject); begin with ClientDataModule do begin if tbl_UnionAddresses.State <> dsBrowse then tbl_UnionAddresses.Post; RemoteDataAdapter.ApplyUpdates([tbl_UnionAddresses]); end; end; procedure TClientForm.chFilterOnClick(Sender: TObject); begin btLoad.Click; end; procedure TClientForm.FormCreate(Sender: TObject); begin Application.Title := ClientForm.Caption; // TODO: until DynamicRequest bug fixed //ClientDataModule.Login; end; end.