Componentes.Terceros.RemObj.../internal/6.0.43.801/1/RemObjects Samples/Data Abstract for Delphi/Dynamic Select/fClientForm.pas
2010-01-29 16:17:43 +00:00

109 lines
2.9 KiB
ObjectPascal

unit fClientForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
uROClient, uROClientIntf, uRORemoteService, uROBinMessage,
uROPoweredByRemObjectsButton, uDAPoweredByDataAbstractButton, ExtCtrls, Grids,
DBGrids, DB, uDAMemDataTable;
type
TClientForm = class(TForm)
Panel1: TPanel;
DAPoweredByDataAbstractButton1: TDAPoweredByDataAbstractButton;
btLoad: TButton;
btDelete: TButton;
btUpdate: TButton;
chUseDynamicSelect: TCheckBox;
dgData: TDBGrid;
procedure FormCreate(Sender: TObject);
procedure btLoadClick(Sender: TObject);
procedure btDeleteClick(Sender: TObject);
procedure btUpdateClick(Sender: TObject);
procedure chUseDynamicSelectClick(Sender: TObject);
private
{ Private declarations }
function GetDataSource: TDataSource;
function GetDataTable: TDAMemDataTable;
public
{ Public declarations }
end;
var
ClientForm: TClientForm;
implementation
uses
fClientDataModule, DataAbstract4_Intf;
{$R *.dfm}
procedure TClientForm.btDeleteClick(Sender: TObject);
begin
GetDataTable.Delete;
end;
procedure TClientForm.btLoadClick(Sender: TObject);
var
tri: TableRequestInfoV5;
triArr: array of TableRequestInfo;
begin
dgData.DataSource := GetDataSource;
ClientDataModule.RemoteDataAdapter.DynamicSelect := chUseDynamicSelect.Checked;
GetDataTable.ClearRows(true);
if chUseDynamicSelect.Checked then begin
GetDataTable.LogicalName := 'Workers';
tri := TableRequestInfoV5.Create;
with tri do begin
IncludeSchema := true;
MaxRecords := -1;
DynamicSelectFieldNames.Add('WorkerID');
DynamicSelectFieldNames.Add('WorkerLastName');
DynamicSelectFieldNames.Add('WorkerFirstName');
DynamicSelectFieldNames.Add('WorkerPhone');
end;
SetLength(triArr, 1);
triArr[0] := tri;
ClientDataModule.RemoteDataAdapter.Fill([GetDataTable], triArr);
end
else ClientDataModule.RemoteDataAdapter.Fill([GetDataTable]);
end;
procedure TClientForm.btUpdateClick(Sender: TObject);
begin
ClientDataModule.RemoteDataAdapter.ApplyUpdates([GetDataTable]);
end;
procedure TClientForm.FormCreate(Sender: TObject);
begin
// TODO: until DynamicRequest bug fixed
//ClientDataModule.Login;
Application.Title := ClientForm.Caption;
end;
function TClientForm.GetDataSource: TDataSource;
begin
if chUseDynamicSelect.Checked
then Result := ClientDataModule.ds_Dynamic
else Result := ClientDataModule.ds_Workers;
end;
function TClientForm.GetDataTable: TDAMemDataTable;
begin
if chUseDynamicSelect.Checked
then Result := ClientDataModule.tbl_Dynamic
else Result := ClientDataModule.tbl_Workers;
end;
procedure TClientForm.chUseDynamicSelectClick(Sender: TObject);
begin
btUpdate.Click;
dgData.DataSource := GetDataSource;
btLoad.Click;
end;
end.