Componentes.Terceros.RemObj.../internal/5.0.23.613/1/Data Abstract for Delphi/Samples/Briefcase/BriefcaseModelClientMain.pas
david 472097efe5 - Eliminadas las librerías para Delphi 6 (Dcu\D6) en RO y DA.
- Recompilación de todos los paquetes de RO para poner RemObjects_Core_D10 como paquete de runtime/designtime.

git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@5 b6239004-a887-0f4b-9937-50029ccdca16
2007-09-10 11:08:08 +00:00

141 lines
4.0 KiB
ObjectPascal

unit BriefcaseModelClientMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
uROClient, uROClientIntf, uRORemoteService, uROBinMessage, ExtCtrls,
DBCtrls, Grids, DBGrids, ActnList;
type
TBriefcaseModelClientMainForm = class(TForm)
Panel1: TPanel;
gCustomers: TDBGrid;
gOrders: TDBGrid;
dbnCustomers: TDBNavigator;
dbnOrders: TDBNavigator;
Splitter1: TSplitter;
OpenButton: TButton;
ApplyUpdateButton: TButton;
DiscardChangesButton: TButton;
ShowChangesButton: TButton;
ActionList1: TActionList;
ApplyUpdateAction: TAction;
DiscardChangesAction: TAction;
ShowChangesAction: TAction;
procedure ApplyUpdateButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure OpenButtonClick(Sender: TObject);
procedure DiscardChangesButtonClick(Sender: TObject);
procedure ShowChangesButtonClick(Sender: TObject);
procedure ApplyUpdateActionUpdate(Sender: TObject);
private
{ Private declarations }
procedure Load;
procedure Save;
procedure FetchData;
public
{ Public declarations }
end;
var
BriefcaseModelClientMainForm: TBriefcaseModelClientMainForm;
implementation
uses
BriefcaseModelClientData, uDADataTable, BriefcaseModelClientChanges;
{$R *.dfm}
procedure TBriefcaseModelClientMainForm.ApplyUpdateButtonClick(Sender: TObject);
begin
BriefcaseModelClientDataModule.RemoteDataAdapter.ApplyUpdates([BriefcaseModelClientDataModule.tbl_Customers]);
end;
procedure TBriefcaseModelClientMainForm.Load;
function loadTable(ATable: TDADataTable): Boolean;
var
aFileName: string;
begin
aFileName := ExtractFilePath(Application.ExeName) + ATable.LogicalName + '.table';
if FileExists(aFileName) then begin
aTable.LoadFromFile(aFileName);
Result := True;
end else
Result := False;
end;
begin
if not loadTable(BriefcaseModelClientDataModule.tbl_Customers) or not loadTable(BriefcaseModelClientDataModule.tbl_Orders) then begin
if MessageDlg('No data table files could be found, do you want to fetch the data from the server?', mtConfirmation, [mbYes, mbNo], 0) = idYes then begin
FetchData;
end;
end;
end;
procedure TBriefcaseModelClientMainForm.Save;
procedure SaveTable(ATable: TDADataTable);
begin
with ATable do
if active then
SaveToFile(ExtractFilePath(Application.ExeName) + LogicalName + '.table');
end;
begin
with BriefcaseModelClientDataModule do begin
SaveTable(tbl_Customers);
SaveTable(tbl_Orders);
end;
end;
procedure TBriefcaseModelClientMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Save;
end;
procedure TBriefcaseModelClientMainForm.FormCreate(Sender: TObject);
begin
Load;
end;
procedure TBriefcaseModelClientMainForm.OpenButtonClick(Sender: TObject);
begin
FetchData;
end;
procedure TBriefcaseModelClientMainForm.FetchData;
begin
BriefcaseModelClientDataModule.tbl_Orders.close;
BriefcaseModelClientDataModule.tbl_Customers.close;
BriefcaseModelClientDataModule.RemoteDataAdapter.Fill([BriefcaseModelClientDataModule.tbl_Customers,
BriefcaseModelClientDataModule.tbl_Orders], true, false);
end;
procedure TBriefcaseModelClientMainForm.DiscardChangesButtonClick(Sender: TObject);
begin
with BriefcaseModelClientDataModule do begin
tbl_Customers.CancelUpdates;
end;
end;
procedure TBriefcaseModelClientMainForm.ShowChangesButtonClick(Sender: TObject);
begin
ShowChanges;
end;
procedure TBriefcaseModelClientMainForm.ApplyUpdateActionUpdate(
Sender: TObject);
begin
with BriefcaseModelClientDataModule do
TAction(Sender).Enabled :=
(tbl_Customers.DeltaInitialized) and ((tbl_Customers.Delta.Count > 0)) or
(tbl_Orders.DeltaInitialized) and ((tbl_Orders.Delta.Count > 0))
end;
end.