87 lines
3.0 KiB
ObjectPascal
87 lines
3.0 KiB
ObjectPascal
unit BusinessProcessorClientData;
|
|
|
|
interface
|
|
|
|
uses
|
|
{vcl:} SysUtils, Classes, DB, DBClient, Variants,
|
|
{RemObjects:} uROClient, uROClientIntf, uRORemoteService, uROBinMessage, uROWinInetHTTPChannel,
|
|
{Data Abstract:} uDADataTable, uDABINAdapter, uDAInterfaces,
|
|
uDADataStreamer, uDARemoteDataAdapter, uDAScriptingProvider,
|
|
uDACDSDataTable, uDADelta;
|
|
|
|
type
|
|
TBusinessProcessorClientDataModule = class(TDataModule)
|
|
Message: TROBinMessage;
|
|
Channel: TROWinInetHTTPChannel;
|
|
RemoteService: TRORemoteService;
|
|
DataStreamer: TDABinDataStreamer;
|
|
RemoteDataAdapter: TDARemoteDataAdapter;
|
|
tbl_Customers: TDACDSDataTable;
|
|
ds_Customers: TDADataSource;
|
|
tbl_Orders: TDACDSDataTable;
|
|
ds_Orders: TDADataSource;
|
|
procedure RemoteDataAdapterGenerateRecordMessage(Sender: TObject;
|
|
aChange: TDADeltaChange; ADatatable: TDADataTable;
|
|
var aMessage: string);
|
|
procedure RemoteDataAdapterShowReconcileRecordInAppUI(Sender: TObject;
|
|
aChange: TDADeltaChange; aDatatable: TDADataTable;
|
|
var aHandled: Boolean; var aAction: TDAReconcileDialogAction);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
BusinessProcessorClientDataModule: TBusinessProcessorClientDataModule;
|
|
|
|
implementation
|
|
uses BusinessProcessorClientUnit1;
|
|
{$R *.dfm}
|
|
|
|
procedure TBusinessProcessorClientDataModule.RemoteDataAdapterGenerateRecordMessage(
|
|
Sender: TObject; aChange: TDADeltaChange; ADatatable: TDADataTable;
|
|
var aMessage: string);
|
|
var
|
|
i: integer;
|
|
begin
|
|
aMessage := 'A problem occured while ';
|
|
case achange.ChangeType of
|
|
ctInsert: aMessage := aMessage + 'inserting';
|
|
ctUpdate: aMessage := aMessage + 'updating';
|
|
ctDelete: aMessage := aMessage + 'deleting';
|
|
end;
|
|
aMessage := aMessage + ' a record in table "' + ADatatable.LogicalName + '"';
|
|
if ADatatable = tbl_Customers then begin
|
|
aMessage := aMessage + ' , CustomerID = ''';
|
|
if aChange.ChangeType = ctInsert then
|
|
aMessage := aMessage + VarToStr(aChange.NewValueByName['CustomerID']) + ''''
|
|
else
|
|
aMessage := aMessage + VarToStr(aChange.OldValueByName['CustomerID']) + '''';
|
|
end
|
|
else begin
|
|
aMessage := aMessage + ' , OrderID = ''';
|
|
if aChange.ChangeType = ctInsert then
|
|
aMessage := aMessage + VarToStr(aChange.NewValueByName['OrderID']) + ''''
|
|
else
|
|
aMessage := aMessage + VarToStr(aChange.OldValueByName['OrderID']) + '''';
|
|
end;
|
|
|
|
i := pos(sLineBreak, aChange.Message);
|
|
if i = 0 then
|
|
aMessage := aMessage + sLineBreak + sLineBreak + aChange.Message
|
|
else
|
|
aMessage := aMessage + sLineBreak + sLineBreak + copy(aChange.Message, 1, i - 1);
|
|
end;
|
|
|
|
procedure TBusinessProcessorClientDataModule.RemoteDataAdapterShowReconcileRecordInAppUI(
|
|
Sender: TObject; aChange: TDADeltaChange; aDatatable: TDADataTable;
|
|
var aHandled: Boolean; var aAction: TDAReconcileDialogAction);
|
|
begin
|
|
BusinessProcessorClientUnit1.ReconcileDialogShowDetails(aChange, ADatatable, AAction);
|
|
AHandled := True;
|
|
end;
|
|
|
|
end.
|
|
|