📄 transinterface.pas
字号:
{
********************************************************************************
* *
* (c) China Systems 1999 - 2003 *
* *
* Prexim Imaging development team. *
* *
********************************************************************************
*
* Unit Name: TransInterface.pas
* Author: Licwing
* Purpose: Provides two components to operate communication between client and
server, they don't care how to implement.
********************************************************************************
}
unit TransInterface;
//==============================================================================
{* |<PRE>
Unit name: TransInterface.pas
Author: Licwing
Purpose: Provides two components to operate communication between client and
server independent of a special protocol.
How to transfer an error message from server to client?
If an error occurs while processing an event at server, changed FLAG
to FALSE and assigned the error message to ERRORMSG.
Develop Platform: Win2K pro & sp3 + delphi6 & patch2
Test Platform:
History:
08-21-2003 V1.0 by Licwing
-> first version
08-26-2003 V1.0 by Licwing
-> Transfer error messag from server to client
08-27-2003 V1.1 by Licwing
-> Pass username into Event on server while command is Send, Resend, Create,
Reject or Release.
08-28-2003 V1.2 by Licwing
-> manage interface added
|</PRE>}
//==============================================================================
interface
uses
Classes, SysUtils,
// PrExim Modules
PrEximFileUtils, PrEximClasses, PrEximTrans, ScanClasses;
type
//==============================================================================
// Commands definition
//==============================================================================
TMethodDefine = (mdSendFolder, mdSendTransaction,
mdSaveTransaction, mdSaveFolder,
mdResendFolder, mdResendTransaction,
mdDeleteFolder, mdDeleteTransaction, mdDeleteDocument, mdDeletePage,
mdCreateFolder, mdCreateTransaction, mdCreateDocument,
mdReleaseFolder, mdReleaseTransaction, mdRejectFolder, mdRejectTransaction,
mdGetAllFolders, mdGetAllTransaction, mdGetAllFaxes,
mdGetTransaction, mdGetPage,
mdGetAllRejectedFolder, mdGetAllReleaseFolder,
mdMoveFax,
mdGetUsers, mdGetUser, mdAddUser, mdUpdateUser, mdDeleteUser,
mdGetFolderTypes, mdAddFolderType, mdDeleteFolderType,
mdGetTransactionTypes, mdAddTransactionType, mdDeleteTransactionType,
mdGetDocumentTypes, mdAddDocumentType, mdDeleteDocumentType,
mdGetSubTransactionTypes, mdGetSubDocumentTypes,
mdAddTxnTypeToFldType, mdAddDocTypeToTxnType,
mdDeleteTxnTypeToFldType, mdDeleteDocTypeToTxnType,
mdGetFldParameters, mdGetTxnParameters, mdGetDocParameters,
mdGetFldParameter, mdGetTxnParameter, mdGetDocParameter,
mdAddFldParameter, mdAddTxnParameter, mdAddDocParameter,
mdUpdateFldParameter, mdUpdateTxnParameter, mdUpdateDocParameter,
mdDeleteFldParameter, mdDeleteTxnParameter, mdDeleteDocParameter,
mdGetListValuePairs, mdAddListValuePair,
mdDeleteListValuePair, mdDeleteListValuePairDef,
mdSetBranchID, mdGetBranchID, mdSetReleaserCount, mdGetReleaserCount,
mdChangePassword, mdGetPassword);
type
//==============================================================================
// Events definition
//==============================================================================
TOnFolderListEvent = procedure(AFolderList: TFolderList; var Flag: boolean;
var ErrorMsg: string) of object;
TOnFolderListExEvent = procedure(AFolderList: TFolderList; const User: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnPageListEvent = procedure(APageList: TPageList; var Flag: boolean;
var ErrorMsg: string) of object;
TOnTransactionListEvent = procedure(ATransactionList: TTransactionList; var Flag: boolean;
var ErrorMsg: string) of object;
TOnFolderExEvent = procedure(AFolder: TFolder; const User: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnTransactionExEvent = procedure(ATransaction: TTransaction; const User: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnDocumentExEvent = procedure(ADocument: TDocument; const User: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnFolderEvent = procedure(AFolder: TFolder; var Flag: boolean;
var ErrorMsg: string) of object;
TOnTransactionEvent = procedure(ATransaction: TTransaction; var Flag: boolean;
var ErrorMsg: string) of object;
TOnDocumentEvent = procedure(ADocument: TDocument; var Flag: boolean;
var ErrorMsg: string) of object;
TOnPageEvent = procedure(APage: TPage; const User: string; var Flag: boolean;
var ErrorMsg: string) of object;
TOnPageIDEvent = procedure(APage: TPage; APageID: string; var Flag: boolean;
var ErrorMsg: string) of object;
TOnUserListEvent= procedure(AUserList: TUserList; var Flag: boolean;
var ErrorMsg: string) of object;
TOnUserEvent= procedure(AUser: TUser; var Flag: boolean;
var ErrorMsg: string) of object;
TOnUserExEvent= procedure(AUser: TUser; const Operator: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnTypeListEvent= procedure(ATypeList: TTypeList; var Flag: boolean;
var ErrorMsg: string) of object;
TOnSubTypeListEvent= procedure(AParentName: string; ATypeList: TTypeList;
var Flag: boolean; var ErrorMsg: string) of object;
TOnTypeEvent= procedure(AType: TType; const User: string; var Flag: boolean;
var ErrorMsg: string) of object;
TOnTypeExEvent= procedure(AType: TType; const Operator: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnSubTypeEvent= procedure(AParentTypeID: string; ASubTypeID: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnStringIDEvent= procedure(AID: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnGetStringEvent= procedure(var AID: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnStringIDExEvent= procedure(AID: string; User: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnGetPasswordEvent= procedure(var Password: string; User: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnDoubleStringIDEvent= procedure(AID: string; APairID: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnIntegerEvent= procedure(AValue: Integer; const User: string;
var Flag: boolean; var ErrorMsg: string) of object;
TOnGetIntegerEvent= procedure(var AValue: Integer;
var Flag: boolean; var ErrorMsg: string) of object;
TOnListValuePairsEvent= procedure(AID: string; APairList: TListValuePairList;
var Flag: boolean; var ErrorMsg: string) of object;
TOnListValuePairEvent= procedure(AParentID: string; APair: TListValuePair;
var Flag: boolean; var ErrorMsg: string) of object;
TOnParameterEvent= procedure(AParam: TParameter;
var Flag: boolean; var ErrorMsg: string) of object;
TOnParameterIDEvent= procedure(AID: string; AParam: TParameter;
var Flag: boolean; var ErrorMsg: string) of object;
TOnParameterListEvent= procedure(AParamList: TParameterList;
var Flag: boolean; var ErrorMsg: string) of object;
//==============================================================================
// Interface definition
//==============================================================================
TScanClient = class (TComponent)
private
FErrorCode: integer;
FErrorMsg: string;
fTransClient: TImageTransClient;
procedure SetTransClient(const Value: TImageTransClient);
function InternalGetTypes(const AObjectLevel: TStorageObjectLevel; ATypeList: TTypeList): boolean;
function InternalAddType(const AObjectLevel: TStorageObjectLevel; AType: TType): boolean;
function InternalDeleteType(const AObjectLevel: TStorageObjectLevel; ATypeID: string): boolean;
function InternalGetSubTypes(const AParentLevel: TStorageObjectLevel; AName: string; ATypeList: TTypeList): boolean;
function InternalAddSubType(const AParentLevel: TStorageObjectLevel; AParentTypeID: string; ASubTypeID: string): boolean;
function InternalDeleteSubType(const AParentLevel: TStorageObjectLevel; AParentTypeID: string; ASubTypeID: string): boolean;
function InternalGetParameters(const AObjectLevel: TStorageObjectLevel; AParamList: TParameterList): boolean;
function InternalGetParameter(const AObjectLevel: TStorageObjectLevel; AID: String; AParameter: TParameter): boolean;
function InternalAddParameter(const AObjectLevel: TStorageObjectLevel; AParameter: TParameter): boolean;
function InternalUpdateParameter(const AObjectLevel: TStorageObjectLevel; AParameter: TParameter): boolean;
function InternalDeleteParameter(const AObjectLevel: TStorageObjectLevel; AParamID: string): boolean;
function InternalGetFolderList(ACmd: TMethodDefine; AFolders: TFolderList): boolean;
protected
procedure Notification(AComponent:TComponent;Operation:TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function Login(const Username, Password: string; var UserRight: TUserRight): Boolean;
procedure Logout;
function GetUserProfile(Stream: TStream): boolean;
function SendFolder(AFolder: TFolder): boolean;
function SendTransaction(ATransaction: TTransaction): boolean;
function ResendFolder(AFolder: TFolder): boolean;
function ResendTransaction(ATransaction: TTransaction): boolean;
function DeleteFolder(AFolder: TFolder): boolean;
function DeleteTransaction(ATransaction: TTransaction): boolean;
function DeleteDocument(ADocument: TDocument): boolean;
function DeletePage(APage: TPage): boolean;
function CreateFolder(AFolder: TFolder): boolean;
function CreateTransaction(ATransaction: TTransaction): boolean;
function CreateDocument(ADocument: TDocument): boolean;
function ReleaseFolder(AFolder: TFolder): boolean;
function ReleaseTransaction(ATransaction: TTransaction): boolean;
function RejectFolder(AFolder: TFolder): boolean;
function RejectTransaction(ATransaction: TTransaction): boolean;
function GetAllFolders(AFolders: TFolderList): boolean;
function GetAllTransaction(AFolder: TFolder): boolean;
function GetAllFaxes(AFaxes: TPageList): boolean;
function GetAllRejectedFolders(AFolders: TFolderList): boolean;
function GetAllReleaseFolders(AFolders: TFolderList): boolean;
function GetTransaction(ATransaction: TTransaction): boolean;
function GetPage(APage: TPage): boolean;
function MoveFax(AFax: TPage): boolean;
function SaveTransaction(ATransaction: TTransaction): boolean;
function SaveFolder(AFolder: TFolder): boolean;
// User
function GetUsers(AUserList: TUserList): boolean;
function GetUser(AUserID: string; AUser: TUser): boolean;
function AddUser(AUser: TUser): boolean;
function UpdateUser(AUser: TUser): boolean;
function DeleteUser(AUserID: string): boolean;
// Folder, Transaction, Document types
function GetFolderTypes(ATypeList: TTypeList): boolean;
function AddFolderType(AType: TType): boolean;
function DeleteFolderType(ATypeID: string): boolean;
function GetTransactionTypes(ATypeList: TTypeList): boolean;
function AddTransactionType(AType: TType): boolean;
function DeleteTransactionType(ATypeID: string): boolean;
function GetDocumentTypes(ATypeList: TTypeList): boolean;
function AddDocumentType(AType: TType): boolean;
function DeleteDocumentType(ATypeID: string): boolean;
// Type relationships
function GetSubTransactionTypes(AFolderName: string; ATypeList: TTypeList): boolean;
function GetSubDocumentTypes(ATransactionName: string; ATypeList: TTypeList): boolean;
function AddTransTypeToFolderType(AFolderTypeID, ATransactionTypeID: string): boolean;
function AddDocTypeToTransType(ATransactionTypeID, ADocumentID: string): boolean;
function DeleteTransTypeFromFolderType(AFolderTypeID, ATransactionTypeID: string): boolean;
function DeleteDocTypeFromTransactionType(ATransactionTypeID, ADocumentID: string): boolean;
//Parameters
function GetFolderParameters(AParamList: TParameterList): boolean;
function GetFolderParameter(AID: String; AParameter: TParameter): boolean;
function AddFolderParameter(AParam: TParameter): boolean;
function UpdateFolderParameter(AParam: TParameter): boolean;
function DeleteFolderParameter(AID: String): boolean;
function GetTransactionParameters(AParamList: TParameterList): boolean;
function GetTransactionParameter(AID: String; AParameter: TParameter): boolean;
function AddTransactionParameter(AParam: TParameter): boolean;
function UpdateTransactionParameter(AParam: TParameter): boolean;
function DeleteTransactionParameter(AID: String): boolean;
function GetDocumentParameters(AParamList: TParameterList): boolean;
function GetDocumentParameter(AID: String; AParameter: TParameter): boolean;
function AddDocumentParameter(AParam: TParameter): boolean;
function UpdateDocumentParameter(AParam: TParameter): boolean;
function DeleteDocumentParameter(AID: String): boolean;
//List type definition
function GetListValuePairs(AID: string; APairList: TListValuePairList): boolean;
function AddListValuePair(AID: string; APair: TListValuePair): boolean;
function DeleteListValuePair(AParameterID, AListValuePairID: string): boolean;
function DeleteListValuePairDef(AParameterID: string): boolean;
//Utilities
function SetBranchID(AID: string): boolean;
function GetBranchID: string;
function SetReleaserCount(ACount: integer): boolean;
function GetReleaserCount: integer;
function ChangePassword(ANewPassword: string): boolean;
function GetPassword: string;
function GetLastError: string;
function LastErrorCode: integer;
published
property Transport: TImageTransClient read fTransClient write SetTransClient;
end;
TScanServer = class (TComponent)
private
FErrorCode: integer;
FErrorMsg: string;
fTransServer: TImageTransServer;
FOnLogin: TOnLoginEvent;
FOnLogout: TOnLogoutEvent;
FOnGetUserProfile: TOnGetUserProfileEvent;
FOnResendFolder: TOnFolderExEvent;
FOnSendFolder: TOnFolderExEvent;
FOnResendTransaction: TOnTransactionExEvent;
FOnSendTransaction: TOnTransactionExEvent;
FOnDeleteFolder: TOnFolderExEvent;
FOnDeleteTransaction: TOnTransactionExEvent;
FOnDeleteDocument: TOnDocumentExEvent;
FOnDeletePage: TOnPageEvent;
FOnCreateFolder: TOnFolderExEvent;
FOnCreateTransaction: TOnTransactionExEvent;
FOnCreateDocument: TOnDocumentExEvent;
FOnReleaseFolder: TOnFolderExEvent;
FOnReleaseTransaction: TOnTransactionExEvent;
FOnRejectFolder: TOnFolderExEvent;
FOnRejectTransaction: TOnTransactionExEvent;
FOnGetAllFolders: TOnFolderListEvent;
FOnGetAllTransaction: TOnFolderEvent;
FOnGetAllFaxes: TOnPageListEvent;
FOnGetAllRejectedFolders: TOnFolderListExEvent;
FOnGetAllReleaseFolders: TOnFolderListExEvent;
fOnGetTransaction: TOnTransactionEvent;
FOnGetPage: TOnPageIDEvent;
fOnSaveTransaction: TOnTransactionExEvent;
fOnSaveFolder: TOnFolderExEvent;
FOnMoveFax: TOnPageEvent;
FOnGetUser: TOnUserEvent;
FOnGetUserList: TOnUserListEvent;
FOnAddUser: TOnUserExEvent;
FOnUpdateUser: TOnUserExEvent;
FOnDeleteUser: TOnUserExEvent;
FOnDeleteFolderType: TOnTypeEvent;
FOnDeleteTransactionType: TOnTypeEvent;
FOnDeleteDocumentType: TOnTypeEvent;
FOnAddFolderType: TOnTypeExEvent;
FOnAddTransactionType: TOnTypeExEvent;
FOnAddDocumentType: TOnTypeExEvent;
FOnGetFolderTypeList: TOnTypeListEvent;
FOnGetDocumentTypeList: TOnTypeListEvent;
FOnGetTransactionTypeList: TOnTypeListEvent;
FOnGetSubTransactionTypes: TOnSubTypeListEvent;
FOnGetSubDocumentTypes: TOnSubTypeListEvent;
FOnAddTransactionTypeToFolderType: TOnSubTypeEvent;
FOnAddDocumentTypeToTransactionType: TOnSubTypeEvent;
FOnDeleteDocumentTypeFromTransactionType: TOnSubTypeEvent;
FOnDeleteTransactionTypeFromFolderType: TOnSubTypeEvent;
FOnGetFolderParameters: TOnParameterListEvent;
FOnGetTransactionParameters: TOnParameterListEvent;
FOnGetDocumentParameters: TOnParameterListEvent;
FOnGetFolderParameter: TOnParameterIDEvent;
FOnGetTransactionParameter: TOnParameterIDEvent;
FOnGetDocumentParameter: TOnParameterIDEvent;
FOnAddFolderParameter: TOnParameterEvent;
FOnAddTransactionParameter: TOnParameterEvent;
FOnAddDocumentParameter: TOnParameterEvent;
FOnUpdateFolderParameter: TOnParameterEvent;
FOnUpdateTransactionParameter: TOnParameterEvent;
FOnUpdateDocumentParameter: TOnParameterEvent;
FOnDeleteFolderParameter: TOnParameterEvent;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -