115 lines
3.1 KiB
ObjectPascal
115 lines
3.1 KiB
ObjectPascal
unit uDAClientDataModuleDataTableWizardForm;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, StdCtrls, CheckLst, Buttons, uDAClientDataModule, DesignIntf;
|
|
|
|
type
|
|
TDAClientDataModuleDataTableWizardForm = class(TForm)
|
|
BitBtn2: TBitBtn;
|
|
BitBtn1: TBitBtn;
|
|
lbl_ServerUrl1: TLabel;
|
|
lbl_ServerUrl2: TLabel;
|
|
lb_DataSets: TCheckListBox;
|
|
private
|
|
fModule:TDAClientDataModule;
|
|
procedure FillDataSets;
|
|
public
|
|
class function Execute(aOwner: TComponent; aModule:TDAClientDataModule; aDesigner:IDesigner):boolean;
|
|
end;
|
|
|
|
var
|
|
DAClientDataModuleDataTableWizardForm: TDAClientDataModuleDataTableWizardForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
uROClasses, uDAIDERes, uRODL, uRORemoteService,
|
|
uDADataAbstractEditors, uDAMemDataTable, uDAClasses, uDAPleaseWaitForm;
|
|
|
|
{$R *.dfm}
|
|
|
|
{ TDAClientDataModuleDataTableWizardForm }
|
|
|
|
class function TDAClientDataModuleDataTableWizardForm.Execute(aOwner: TComponent; aModule: TDAClientDataModule; aDesigner:IDesigner): boolean;
|
|
var
|
|
i:integer;
|
|
begin
|
|
if not Assigned(aModule.RemoteService) then RaiseError(err_AssignRemoteService);
|
|
if not Assigned(aModule.RemoteService.Channel) then RaiseError(err_AssignRemoteServiceChannel);
|
|
if not Assigned(aModule.RemoteService.Message) then RaiseError(err_AssignRemoteServiceMessage);
|
|
|
|
with self.Create(aOwner) do try
|
|
|
|
fModule := aModule;
|
|
Caption := Format(Caption,[fModule.Name]);
|
|
FillDataSets();
|
|
|
|
result := ShowModal() = idOk;
|
|
if result then begin
|
|
|
|
for i := 0 to lb_DataSets.Items.Count-1 do begin
|
|
if lb_DataSets.Checked[i] then begin
|
|
CreateDataTable(aDesigner, aModule, TDAMemDataTable, lb_DataSets.Items[i], false);
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
|
|
finally
|
|
Free();
|
|
end;
|
|
end;
|
|
|
|
procedure TDAClientDataModuleDataTableWizardForm.FillDataSets;
|
|
var
|
|
i: integer;
|
|
lSchema: TDASchema;
|
|
lDataSets: TStringList;
|
|
begin
|
|
|
|
lDataSets := TStringList.Create();
|
|
try
|
|
lDataSets.Duplicates := dupIgnore;
|
|
lDataSets.Sorted := true;
|
|
|
|
|
|
lSchema := nil;
|
|
with CreatePleaseWaitForm(self,'Retrieving Schema...') do begin
|
|
fModule.GetSchema(lSchema,true);
|
|
Hide;
|
|
end;
|
|
try
|
|
for i := 0 to lSchema.Datasets.Count-1 do begin
|
|
lDataSets.Add(lSchema.Datasets[i].Name);
|
|
end; { for }
|
|
finally
|
|
lSchema.Free();
|
|
end;
|
|
|
|
lb_DataSets.Items.Assign(lDataSets);
|
|
for i := 0 to lb_Datasets.Items.Count-1 do begin
|
|
lb_DataSets.Checked[i] := true;
|
|
end; { for }
|
|
|
|
finally
|
|
FreeAndNil(lDataSets);
|
|
end;
|
|
{lLibrary := fModule.RemoteService.GetRODLLibrary();
|
|
if not Assigned (lLibrary) then RaiseError('Library could not retrieved from server');
|
|
try
|
|
lDataSets := fModule.RemoteService.GetServiceMethods();
|
|
for i := 0 to lDataSets.Count-1 do begin
|
|
p := Pos('_',lDataSets[i]);
|
|
if p > 0 then
|
|
lb_DataSets.Checked[lb_DataSets.Items.Add(Copy(lDataSets[i],p+1,Length(lDataSets[i])-p))] := true;
|
|
end;
|
|
finally
|
|
lLibrary.Free();
|
|
end; }
|
|
end;
|
|
|
|
end.
|