Componentes.Terceros.RemObj.../internal/5.0.24.615/1/Data Abstract for Delphi/Source/IDE/uDAClientDataModuleDataTableWizardForm.pas

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.