git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@68 b6239004-a887-0f4b-9937-50029ccdca16
219 lines
6.1 KiB
ObjectPascal
219 lines
6.1 KiB
ObjectPascal
unit fClientForm;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
|
|
uROClient, uROClientIntf, uRORemoteService, uROBinMessage, ExtCtrls,
|
|
uROPoweredByRemObjectsButton, uDAPoweredByDataAbstractButton, ComCtrls, Grids,
|
|
DBGrids, DBCtrls, uDADataTable, uDAInterfaces, uDADataAdapter;
|
|
|
|
type
|
|
TClientForm = class(TForm)
|
|
Panel1: TPanel;
|
|
DAPoweredByDataAbstractButton1: TDAPoweredByDataAbstractButton;
|
|
rgFailureBehavior: TRadioGroup;
|
|
rgReducedDelta: TRadioGroup;
|
|
pcSamples: TPageControl;
|
|
tsClientsOrders: TTabSheet;
|
|
tsProducts: TTabSheet;
|
|
tsAddress: TTabSheet;
|
|
Panel2: TPanel;
|
|
Label1: TLabel;
|
|
Memo1: TMemo;
|
|
btLoadCustomersOrders: TButton;
|
|
btDeleteCustomer: TButton;
|
|
btApplyChangesCustomers: TButton;
|
|
Label2: TLabel;
|
|
dgClients: TDBGrid;
|
|
Splitter1: TSplitter;
|
|
Panel3: TPanel;
|
|
Panel4: TPanel;
|
|
Splitter2: TSplitter;
|
|
dgOrderDetails: TDBGrid;
|
|
Label3: TLabel;
|
|
Panel5: TPanel;
|
|
Label4: TLabel;
|
|
dgOrders: TDBGrid;
|
|
Panel6: TPanel;
|
|
Label5: TLabel;
|
|
Memo2: TMemo;
|
|
btLoadProducts: TButton;
|
|
btApplyChangesProducts: TButton;
|
|
Label6: TLabel;
|
|
dgProducts: TDBGrid;
|
|
Label7: TLabel;
|
|
Panel7: TPanel;
|
|
Label8: TLabel;
|
|
Memo3: TMemo;
|
|
btLoadAddresses: TButton;
|
|
btApplyChangesAddresses: TButton;
|
|
dgAddresses: TDBGrid;
|
|
Panel8: TPanel;
|
|
cbGroups: TDBLookupComboBox;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure btLoadCustomersOrdersClick(Sender: TObject);
|
|
procedure btDeleteCustomerClick(Sender: TObject);
|
|
procedure btApplyChangesCustomersClick(Sender: TObject);
|
|
procedure pcSamplesChange(Sender: TObject);
|
|
procedure btLoadProductsClick(Sender: TObject);
|
|
procedure btApplyChangesProductsClick(Sender: TObject);
|
|
procedure btLoadAddressesClick(Sender: TObject);
|
|
procedure btApplyChangesAddressesClick(Sender: TObject);
|
|
procedure cbGroupsCloseUp(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
procedure AdjustBehavior;
|
|
procedure HandleUpdate(const aTables: array of TDADataTable);
|
|
procedure SelectedGroupChanged(Sender: TObject);
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
ClientForm: TClientForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
fClientDataModule, DB;
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TClientForm.AdjustBehavior;
|
|
begin
|
|
with ClientDataModule do begin
|
|
case rgFailureBehavior.ItemIndex of
|
|
0: RemoteDataAdapter.FailureBehavior := fbShowReconcile;
|
|
1: RemoteDataAdapter.FailureBehavior := fbRaiseException;
|
|
2: RemoteDataAdapter.FailureBehavior := fbBoth;
|
|
3: RemoteDataAdapter.FailureBehavior := fbNone;
|
|
end;
|
|
|
|
if rgReducedDelta.ItemIndex = 0 then begin
|
|
RemoteDataAdapter.DynamicSelect := True;
|
|
DataStreamer.SendReducedDelta := True;
|
|
end
|
|
else begin
|
|
RemoteDataAdapter.DynamicSelect := False;
|
|
DataStreamer.SendReducedDelta := False;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TClientForm.btApplyChangesAddressesClick(Sender: TObject);
|
|
begin
|
|
AdjustBehavior;
|
|
HandleUpdate([ClientDataModule.tbl_UnionAddresses]);
|
|
end;
|
|
|
|
procedure TClientForm.btApplyChangesCustomersClick(Sender: TObject);
|
|
begin
|
|
AdjustBehavior;
|
|
with ClientDataModule do
|
|
HandleUpdate([tbl_BPClients]);
|
|
end;
|
|
|
|
procedure TClientForm.btApplyChangesProductsClick(Sender: TObject);
|
|
begin
|
|
AdjustBehavior;
|
|
with ClientDataModule do HandleUpdate([tbl_Products]);
|
|
end;
|
|
|
|
procedure TClientForm.btDeleteCustomerClick(Sender: TObject);
|
|
begin
|
|
with ClientDataModule do
|
|
if tbl_BPClients.RecordCount > 0
|
|
then tbl_BPClients.Delete;
|
|
end;
|
|
|
|
procedure TClientForm.btLoadAddressesClick(Sender: TObject);
|
|
begin
|
|
AdjustBehavior;
|
|
with ClientDataModule do begin
|
|
tbl_UnionAddresses.ClearRows(true);
|
|
RemoteDataAdapter.Fill([tbl_UnionAddresses]);
|
|
end;
|
|
end;
|
|
|
|
procedure TClientForm.btLoadCustomersOrdersClick(Sender: TObject);
|
|
begin
|
|
with ClientDataModule do begin
|
|
if tbl_BPClients.Active then tbl_BPClients.Close;
|
|
tbl_BPClients.Open;
|
|
end;
|
|
end;
|
|
|
|
procedure TClientForm.btLoadProductsClick(Sender: TObject);
|
|
begin
|
|
AdjustBehavior;
|
|
with ClientDataModule do begin
|
|
tbl_SelectedGroup.ClearRows(true);
|
|
tbl_Products.ClearRows(true);
|
|
tbl_Groups.ClearRows(true);
|
|
RemoteDataAdapter.Fill([tbl_SelectedGroup]);
|
|
RemoteDataAdapter.Fill([tbl_Groups]);
|
|
end;
|
|
SelectedGroupChanged(nil);
|
|
end;
|
|
|
|
procedure TClientForm.FormCreate(Sender: TObject);
|
|
begin
|
|
// TODO: until DynamicRequest bug fixed
|
|
//ClientDataModule.Login;
|
|
Application.Title := ClientForm.Caption;
|
|
pcSamples.ActivePageIndex := 0;
|
|
ClientDataModule.OnSelectedGroupChange := SelectedGroupChanged;
|
|
end;
|
|
|
|
procedure TClientForm.HandleUpdate(const aTables: array of TDADataTable);
|
|
var i: integer;
|
|
begin
|
|
try
|
|
for i := Low(aTables) to High(aTables) do
|
|
if aTables[i].State <> dsBrowse then aTables[i].Post;
|
|
ClientDataModule.RemoteDataAdapter.ApplyUpdates(aTables);
|
|
except
|
|
on E: Exception do ShowMessage('Exception raised: ' + E.Message);
|
|
end;
|
|
end;
|
|
|
|
procedure TClientForm.pcSamplesChange(Sender: TObject);
|
|
begin
|
|
case pcSamples.ActivePageIndex of
|
|
1: begin
|
|
rgReducedDelta.ItemIndex := 0;
|
|
rgReducedDelta.Enabled := false;
|
|
end;
|
|
2: begin
|
|
rgReducedDelta.ItemIndex := 1;
|
|
rgReducedDelta.Enabled := false;
|
|
end;
|
|
else rgReducedDelta.Enabled := true;
|
|
end;
|
|
end;
|
|
|
|
procedure TClientForm.SelectedGroupChanged(Sender: TObject);
|
|
var
|
|
wb: TDAWhereBuilder;
|
|
expArray: array of TDAWhereExpression;
|
|
begin
|
|
wb := TDAWhereBuilder.Create;
|
|
with wb, ClientDataModule do begin
|
|
Expression := NewBinaryExpression(tbl_Products.LogicalName, 'ProductGroup', dboEqual,
|
|
tbl_SelectedGroup.FieldValues[0], datInteger);
|
|
tbl_Products.ClearRows(true);
|
|
SetLength(expArray, 1);
|
|
expArray[0] := Expression;
|
|
RemoteDataAdapter.Fill([tbl_Products], expArray);
|
|
end;
|
|
wb.Free;
|
|
end;
|
|
|
|
procedure TClientForm.cbGroupsCloseUp(Sender: TObject);
|
|
begin
|
|
SelectedGroupChanged(Sender);
|
|
end;
|
|
|
|
end.
|