Componentes.Terceros.RemObj.../official/5.0.23.613/Data Abstract for Delphi/Samples/QuantumGrid 4/QuantumGrid4_ClientData.pas

85 lines
2.2 KiB
ObjectPascal

unit QuantumGrid4_ClientData;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uROClient, uROClientIntf, uRORemoteService, uROBinMessage, uROWinInetHTTPChannel,
{Data Abstract:} uDADataTable, uDABINAdapter,
uDACDSDataTable, uDAADODataTable, uDAScriptingProvider,
uDARemoteDataAdapter, uDADataStreamer;
type
TQuantumGrid4_ClientDataModule = class(TDataModule)
ROMessage: TROBinMessage;
ROChannel: TROWinInetHTTPChannel;
RORemoteService: TRORemoteService;
bdsCustomers: TDABinDataStreamer;
dtCustomers: TDACDSDataTable;
dsCustomers: TDADataSource;
dtOrders: TDACDSDataTable;
dsOrders: TDADataSource;
rdaCustomers: TDARemoteDataAdapter;
rdaorders: TDARemoteDataAdapter;
bdsOrders: TDABinDataStreamer;
procedure dtCustomersAfterScroll(DataTable: TDADataTable);
procedure dtCustomersAfterOpen(DataTable: TDADataTable);
private
fFetchedCustomers : TStringList;
public
constructor Create(aOwner : TComponent); override;
destructor Destroy; override;
end;
var
QuantumGrid4_ClientDataModule: TQuantumGrid4_ClientDataModule;
implementation
uses uDAInterfaces;
{$R *.dfm}
{ TClientDataModule }
constructor TQuantumGrid4_ClientDataModule.Create(aOwner: TComponent);
begin
inherited;
fFetchedCustomers := TStringList.Create;
fFetchedCustomers.Sorted := TRUE;
end;
destructor TQuantumGrid4_ClientDataModule.Destroy;
begin
fFetchedCustomers.Free;
inherited;
end;
procedure TQuantumGrid4_ClientDataModule.dtCustomersAfterScroll(
DataTable: TDADataTable);
var lCustomerID : string;
begin
if dtCustomers.Fetching then Exit;
with dtOrders do begin
lCustomerID := dtCustomers.FieldByName('CustomerID').AsString;
if (fFetchedCustomers.IndexOf(lCustomerID)>=0)
then Exit
else fFetchedCustomers.Add(lCustomerID);
rdaorders.GetDataCall.ParamByName('CustomerID').AsString := lCustomerID;
LoadFromRemoteSource;
end;
end;
procedure TQuantumGrid4_ClientDataModule.dtCustomersAfterOpen(DataTable: TDADataTable);
begin
fFetchedCustomers.Clear;
dtCustomersAfterScroll(DataTable);
end;
initialization
end.