⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transinterface.pas

📁 一个很好的学习例子,有需要的请下载研究,
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  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 + -