84 lines
2.2 KiB
ObjectPascal
84 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, uDAInterfaces;
|
|
|
|
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
|
|
|
|
|
|
{$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.
|