rmd_midas.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 832 行 · 第 1/2 页
PAS
832 行
function TRMDSocketConnection.GetHost: string;
begin
Result := FSocketConnection.Host;
end;
procedure TRMDSocketConnection.SetHost(Value: string);
begin
FSocketConnection.Host := Value;
end;
function TRMDSocketConnection.GetInterceptGUID: string;
begin
Result := FSocketConnection.InterceptGUID;
end;
procedure TRMDSocketConnection.SetInterceptGUID(Value: string);
begin
FSocketConnection.InterceptGUID := Value;
end;
function TRMDSocketConnection.GetPort: Integer;
begin
Result := FSocketConnection.Port;
end;
procedure TRMDSocketConnection.SetPort(Value: Integer);
begin
FSocketConnection.Port := Value;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMDClientDataSet }
constructor TRMDClientDataSet.Create;
begin
inherited Create;
BaseName := 'ClientDataSet';
FBmpRes := 'RMD_CLIENTDATASET';
FTable := TClientDataSet.Create(RMDialogForm);
DataSet := FTable;
end;
destructor TRMDClientDataSet.Destroy;
begin
inherited Destroy;
end;
procedure TRMDClientDataSet.LoadFromStream(aStream: TStream);
begin
inherited LoadFromStream(aStream);
RMReadWord(aStream);
FFixupList['RemoteServer'] := RMReadString(aStream);
FFixupList['ProviderName'] := RMReadString(aStream);
FTable.CommandText := RMReadString(aStream);
FTable.PacketRecords := RMReadInt32(aStream);
end;
procedure TRMDClientDataSet.SaveToStream(aStream: TStream);
begin
inherited SaveToStream(aStream);
RMWriteWord(aStream, 0);
RMWriteString(aStream, RemoteServer);
RMWriteString(aStream, FTable.ProviderName);
RMWriteString(aStream, FTable.CommandText);
RMWriteInt32(aStream, FTable.PacketRecords);
end;
function TRMDClientDataSet.GetRemoteServer: string;
begin
Result := '';
if FTable.RemoteServer <> nil then
begin
Result := FTable.Name;
if FTable.RemoteServer.Owner <> FTable.Owner then
Result := FTable.RemoteServer.Owner.Name + '.' + Result;
end;
end;
procedure TRMDClientDataSet.SetRemoteServer(Value: string);
var
d: TComponent;
begin
FTable.Active := False;
d := RMFindComponent(FTable.Owner, Value);
if d is TCustomRemoteServer then
FTable.RemoteServer := TCustomRemoteServer(d);
end;
function TRMDClientDataSet.GetProviderName: string;
begin
Result := FTable.ProviderName;
end;
procedure TRMDClientDataSet.SetProviderName(Value: string);
begin
FTable.ProviderName := Value;
end;
function TRMDClientDataSet.GetCommandText: string;
begin
Result := FTable.CommandText;
end;
procedure TRMDClientDataSet.SetCommandText(Value: string);
begin
FTable.CommandText := Value;
end;
function TRMDClientDataSet.GetPacketRecords: Integer;
begin
Result := FTable.PacketRecords;
end;
procedure TRMDClientDataSet.SetPacketRecords(Value: Integer);
begin
FTable.PacketRecords := Value;
end;
procedure TRMDClientDataSet.GetIndexNames(sl: TStrings);
var
i: integer;
begin
try
if (Length(FTable.ProviderName) > 0) and (FTable.IndexDefs <> nil) then
begin
FTable.IndexDefs.Update;
for i := 0 to FTable.IndexDefs.Count - 1 do
begin
if FTable.IndexDefs[i].Name <> '' then
sl.Add(FTable.IndexDefs[i].Name);
end;
end;
except
end;
end;
type
THackRemoveServer = class(TCustomRemoteServer)
end;
procedure TRMDClientDataSet.Loaded;
begin
{ try
Prop['RemoteServer'] := FFixupList['RemoteServer'];
Prop['ProviderName'] := FFixupList['ProviderName'];
except;
end;
inherited Loaded;
}end;
function TRMDClientDataSet.GetDatabaseName: string;
begin
Result := '';
end;
procedure TRMDClientDataSet.SetDatabaseName(const Value: string);
begin
end;
function TRMDClientDataSet.GetTableName: string;
begin
Result := '';
end;
procedure TRMDClientDataSet.SetTableName(Value: string);
begin
end;
function TRMDClientDataSet.GetFilter: string;
begin
Result := FTable.Filter;
end;
procedure TRMDClientDataSet.SetFilter(Value: string);
begin
FTable.Active := False;
FTable.Filter := Value;
FTable.Filtered := Value <> '';
end;
function TRMDClientDataSet.GetIndexName: string;
begin
Result := FTable.IndexName;
end;
procedure TRMDClientDataSet.SetIndexName(Value: string);
begin
FTable.Active := False;
FTable.IndexName := Value;
end;
function TRMDClientDataSet.GetMasterFields: string;
begin
Result := FTable.MasterFields;
end;
procedure TRMDClientDataSet.SetMasterFields(Value: string);
begin
FTable.MasterFields := Value;
end;
function TRMDClientDataSet.GetMasterSource: string;
begin
Result := RMGetDataSetName(FTable.Owner, FTable.MasterSource)
end;
procedure TRMDClientDataSet.SetMasterSource(Value: string);
var
liComponent: TComponent;
begin
liComponent := RMFindComponent(FTable.Owner, Value);
if (liComponent <> nil) and (liComponent is TDataSet) then
FTable.MasterSource := RMGetDataSource(FTable.Owner, TDataSet(liComponent))
else
FTable.MasterSource := nil;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
type
TRMDDComConnection_ServerNameEditor = class(TELStringPropEditor)
protected
function GetAttrs: TELPropAttrs; override;
procedure GetValues(AValues: TStrings); override;
end;
TRMDDComConnection_ObjectBrokerEditor = class(TELStringPropEditor)
protected
function GetAttrs: TELPropAttrs; override;
procedure GetValues(AValues: TStrings); override;
end;
TRMDSocketConnection_ServerNameEditor = class(TELStringPropEditor)
protected
function GetAttrs: TELPropAttrs; override;
procedure GetValues(AValues: TStrings); override;
end;
TRMDClientDataSet_RemoteServerEditor = class(TELStringPropEditor)
protected
function GetAttrs: TELPropAttrs; override;
procedure GetValues(AValues: TStrings); override;
end;
TRMDClientDataSet_ProviderNameEditor = class(TELStringPropEditor)
private
FProviderNames: TStringList;
procedure GetOneProviderName(const s: string);
protected
function GetAttrs: TELPropAttrs; override;
procedure GetValues(AValues: TStrings); override;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMDDComConnection_ServerNameEditor }
function TRMDDComConnection_ServerNameEditor.GetAttrs: TELPropAttrs;
begin
Result := [praValueList, praSortList];
end;
procedure TRMDDComConnection_ServerNameEditor.GetValues(AValues: TStrings);
var
sl: TStringList;
begin
sl := TStringList.Create;
try
GetMIDASAppServerList(sl, '');
sl.Sort;
aValues.Assign(sl);
finally
sl.Free;
end;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMDDComConnection_ObjectBrokerEditor }
function TRMDDComConnection_ObjectBrokerEditor.GetAttrs: TELPropAttrs;
begin
Result := [praValueList, praSortList];
end;
procedure TRMDDComConnection_ObjectBrokerEditor.GetValues(AValues: TStrings);
begin
try
RMGetComponents(RMDialogForm, TCustomObjectBroker, AValues, nil);
finally
end;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMDSocketConnection_ServerNameEditor }
function TRMDSocketConnection_ServerNameEditor.GetAttrs: TELPropAttrs;
begin
Result := [praValueList, praSortList];
end;
procedure TRMDSocketConnection_ServerNameEditor.GetValues(AValues: TStrings);
var
lSocketConnection: TSocketConnection;
sl: TStringList;
tmp: OleVariant;
i, liCount: Integer;
begin
lSocketConnection := TRMDSocketConnection(GetInstance(0)).FSocketConnection;
sl := TStringList.Create;
try
tmp := THackSocketConnection(lSocketConnection).GetServerList;
if tmp <> Null then
begin
liCount := VarArrayDimCount(tmp);
for i := 0 to liCount do
begin
aValues.Add(tmp[i]);
end;
end;
finally
sl.Free;
end;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMDClientDataSet_RemoteServerEditor }
function TRMDClientDataSet_RemoteServerEditor.GetAttrs: TELPropAttrs;
begin
Result := [praValueList, praSortList];
end;
procedure TRMDClientDataSet_RemoteServerEditor.GetValues(AValues: TStrings);
var
sl: TStringList;
begin
sl := TStringList.Create;
try
RMGetComponents(RMDialogForm, TCustomRemoteServer, sl, nil);
sl.Sort;
aValues.Assign(sl);
finally
end;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMDClientDataSet_ProviderNameEditor }
function TRMDClientDataSet_ProviderNameEditor.GetAttrs: TELPropAttrs;
begin
Result := [praValueList, praSortList];
end;
procedure TRMDClientDataSet_ProviderNameEditor.GetOneProviderName(const s: string);
begin
FProviderNames.Add(s);
end;
procedure TRMDClientDataSet_ProviderNameEditor.GetValues(AValues: TStrings);
var
lClientDataSet: TClientDataSet;
begin
lClientDataSet := TRMDClientDataSet(GetInstance(0)).ClientDataSet;
if lClientDataSet.RemoteServer <> nil then
begin
FProviderNames := TStringList.Create;
try
THackRemoveServer(lClientDataSet.RemoteServer).GetProviderNames(GetOneProviderName);
aValues.Assign(FProviderNames);
finally
FProviderNames.Free;
end;
end;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
procedure RM_RegisterRAI2Adapter(RAI2Adapter: TJvInterpreterAdapter);
begin
with RAI2Adapter do
begin
AddClass('ReportMachine', TRMDDCOMConnection, 'TRMDDCOMConnection');
AddClass('ReportMachine', TRMDSocketConnection, 'TRMDSocketConnection');
AddClass('ReportMachine', TRMDClientDataSet, 'TRMDClientDataSet');
end;
end;
initialization
RMRegisterControl(TRMDDComConnection, 'RMD_DCOMCONNECTIONCONTROL', RMLoadStr(rmRes + 2497));
RMRegisterControl(TRMDSocketConnection, 'RMD_SOCKETCONNECTIONCONTROL', RMLoadStr(rmRes + 2498));
RMRegisterControl(TRMDClientDataSet, 'RMD_CLIENTDATASETCONTROL', RMLoadStr(rmRes + 2496));
RMRegisterPropEditor(TypeInfo(string), TRMDDComConnection, 'ServerName', TRMDDComConnection_ServerNameEditor);
RMRegisterPropEditor(TypeInfo(string), TRMDDComConnection, 'ObjectBroker', TRMDDComConnection_ObjectBrokerEditor);
RMRegisterPropEditor(TypeInfo(string), TRMDSocketConnection, 'ObjectBroker', TRMDDComConnection_ObjectBrokerEditor);
RMRegisterPropEditor(TypeInfo(string), TRMDSocketConnection, 'ServerName', TRMDSocketConnection_ServerNameEditor);
RMRegisterPropEditor(TypeInfo(string), TRMDClientDataSet, 'RemoteServer', TRMDClientDataSet_RemoteServerEditor);
RMRegisterPropEditor(TypeInfo(string), TRMDClientDataSet, 'ProviderName', TRMDClientDataSet_ProviderNameEditor);
RM_RegisterRAI2Adapter(GlobalJvInterpreterAdapter);
finalization
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?