📄 transinterface.pas
字号:
AStream := TTempFileStream.Create(Temp_Prefix);
try
ACmd := mdDeleteTransaction;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
ATransaction.SaveToStream(AStream);
Result := fTransClient.Operate(AStream);
finally
AStream.Free;
end;
end;
function TScanClient.DeleteTransactionType(ATypeID: string): boolean;
begin
Result := InternalDeleteType(solTransaction, ATypeID);
end;
destructor TScanClient.Destroy;
begin
fTransClient := nil;
inherited;
end;
function TScanClient.GetAllFaxes(AFaxes: TPageList): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
ACmd := mdGetAllFaxes;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
AFaxes.SaveToStream(AStream);
Result := fTransClient.Retrieve(AStream);
if Result then
begin
AStream.Position := 0;
AFaxes.LoadFromStream(AStream);
end;
finally
AStream.Free;
end;
end;
function TScanClient.GetAllFolders(AFolders: TFolderList): boolean;
{var
AStream: TTempFileStream;
ACmd: TMethodDefine; }
begin
Result := InternalGetFolderList(mdGetAllFolders, AFolders);
{ AStream := TTempFileStream.Create(Temp_Prefix);
try
ACmd := mdGetAllFolders;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
Result := fTransClient.Retrieve(AStream);
if Result then
begin
AStream.Position := 0;
AFolders.LoadFromStream(AStream);
end;
finally
AStream.Free;
end; }
end;
function TScanClient.GetAllTransaction(AFolder: TFolder): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
ACmd := mdGetAllTransaction;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
AFolder.SaveToStream(AStream);
Result := fTransClient.Retrieve(AStream);
if Result then
begin
AStream.Position := 0;
AFolder.LoadFromStream(AStream);
end;
finally
AStream.Free;
end;
end;
function TScanClient.GetDocumentTypes(ATypeList: TTypeList): boolean;
begin
Result := InternalGetTypes(solDocument, ATypeList);
end;
function TScanClient.GetFolderTypes(ATypeList: TTypeList): boolean;
begin
Result := InternalGetTypes(solFolder, ATypeList);
end;
function TScanClient.GetLastError: string;
begin
Result := FErrorMsg;
end;
function TScanClient.GetSubDocumentTypes(ATransactionName: string;
ATypeList: TTypeList): boolean;
begin
Result := InternalGetSubTypes(solTransaction, ATransactionName, ATypeList);
end;
function TScanClient.GetSubTransactionTypes(AFolderName: string;
ATypeList: TTypeList): boolean;
begin
Result := InternalGetSubTypes(solFolder, AFolderName, ATypeList);
end;
function TScanClient.GetTransactionTypes(ATypeList: TTypeList): boolean;
begin
Result := InternalGetTypes(solTransaction, ATypeList);
end;
function TScanClient.GetUser(AUserID: string; AUser: TUser): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
ACmd := mdGetUser;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
AUser.ID := AUserID;
AUser.SaveToStream(AStream);
Result := fTransClient.Retrieve(AStream);
if Result then
begin
AStream.Position := 0;
AUser.LoadFromStream(AStream);
end;
finally
AStream.Free;
end;
end;
function TScanClient.GetUserProfile(Stream: TStream): boolean;
begin
Result := fTransClient.GetUserProfile(Stream);
FErrorMsg := fTransClient.GetLastError(FErrorCode);
end;
function TScanClient.GetUsers(AUserList: TUserList): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
ACmd := mdGetUsers;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
AUserList.SaveToStream(AStream);
Result := fTransClient.Retrieve(AStream);
if Result then
begin
AStream.Position := 0;
AUserList.LoadFromStream(AStream);
end;
finally
AStream.Free;
end;
end;
function TScanClient.InternalAddType(
const AObjectLevel: TStorageObjectLevel; AType: TType): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
case AObjectLevel of
solFolder: ACmd := mdAddFolderType;
solTransaction: ACmd := mdAddTransactionType;
solDocument: ACmd := mdAddDocumentType;
else begin
Result := false;
Raise Exception.CreateRes(@RS_InvaildObjectLevel);
exit;
end
end;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
AType.SaveToStream(AStream);
Result := fTransClient.Operate(AStream);
finally
AStream.Free;
end;
end;
function TScanClient.InternalDeleteType(
const AObjectLevel: TStorageObjectLevel; ATypeID: string): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
AType: TType;
begin
AStream := nil;
AType := nil;
try
case AObjectLevel of
solFolder: ACmd := mdDeleteFolderType;
solTransaction: ACmd := mdDeleteTransactionType;
solDocument: ACmd := mdDeleteDocumentType;
else begin
Result := false;
Raise Exception.CreateRes(@RS_InvaildObjectLevel);
exit;
end
end;
AStream := TTempFileStream.Create(Temp_Prefix);
AType := TType.Create;
AType.ID := ATypeID;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
AType.SaveToStream(AStream);
Result := fTransClient.Operate(AStream);
finally
AType.Free;
AStream.Free;
end;
end;
function TScanClient.InternalGetSubTypes(const AParentLevel: TStorageObjectLevel;
AName: string; ATypeList: TTypeList): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
case AParentLevel of
solFolder: ACmd := mdGetSubTransactionTypes;
solTransaction: ACmd := mdGetSubDocumentTypes;
else begin
Result := false;
Raise Exception.CreateRes(@RS_InvaildObjectLevel);
exit;
end;
end;
ATypeList.Clear;
// Save Parent ID
//with ATypeList.New do
// ID := ATypeID;
with ATypeList.New do
Name := AName;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
ATypeList.SaveToStream(AStream);
Result := fTransClient.Retrieve(AStream);
if Result then
begin
AStream.Position := 0;
ATypeList.LoadFromStream(AStream);
end;
finally
AStream.Free;
end;
end;
function TScanClient.InternalGetTypes(
const AObjectLevel: TStorageObjectLevel; ATypeList: TTypeList): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
case AObjectLevel of
solFolder: ACmd := mdGetFolderTypes;
solTransaction: ACmd := mdGetTransactionTypes;
solDocument: ACmd := mdGetDocumentTypes;
else begin
Result := false;
Raise Exception.CreateRes(@RS_InvaildObjectLevel);
exit;
end
end;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
ATypeList.SaveToStream(AStream);
Result := fTransClient.Retrieve(AStream);
if Result then
begin
AStream.Position := 0;
ATypeList.LoadFromStream(AStream);
end;
finally
AStream.Free;
end;
end;
function TScanClient.InternalAddSubType(
const AParentLevel: TStorageObjectLevel; AParentTypeID: string;
ASubTypeID: string): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
ATypeList: TTypeList;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
case AParentLevel of
solFolder: ACmd := mdAddTxnTypeToFldType;
solTransaction: ACmd := mdAddDocTypeToTxnType;
else begin
Result := false;
Raise Exception.CreateRes(@RS_InvaildObjectLevel);
exit;
end
end;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
// Save Parent type ID and sub type ID in buffer
ATypeList := TTypeList.Create;
try
ATypeList.New.ID := AParentTypeId;
ATypeList.New.ID := ASubTypeID;
ATypeList.SaveToStream(AStream);
finally
ATypeList.Free;
end;
Result := fTransClient.Operate(AStream);
finally
AStream.Free;
end;
end;
function TScanClient.LastErrorCode: integer;
begin
Result := FErrorCode;
end;
function TScanClient.Login(const Username, Password: string;
var UserRight: TUserRight): Boolean;
begin
if not fTransClient.Connected then fTransClient.Connect();
Result := fTransClient.Login(Username, Password, UserRight);
FErrorMsg := fTransClient.GetLastError(FErrorCode);
end;
procedure TScanClient.Logout;
begin
if fTransClient.Connected then fTransClient.Logout;
FErrorMsg := fTransClient.GetLastError(FErrorCode);
end;
function TScanClient.MoveFax(AFax: TPage): boolean;
var
AStream: TTempFileStream;
ACmd: TMethodDefine;
begin
AStream := TTempFileStream.Create(Temp_Prefix);
try
ACmd := mdMoveFax;
AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
AFax.SaveToStream(AStream);
Result := fTransClient.Operate(AStream);
finally
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -