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

📄 transinterface.pas

📁 一个很好的学习例子,有需要的请下载研究,
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    AStream.Free;
  end;
end;

procedure TScanClient.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (AComponent = fTransClient) then
    fTransClient := nil;
end;

function TScanClient.RejectFolder(AFolder: TFolder): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdRejectFolder;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    AFolder.SaveToStream(AStream);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.RejectTransaction(
  ATransaction: TTransaction): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdRejectTransaction;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    ATransaction.SaveToStream(AStream);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.ReleaseFolder(AFolder: TFolder): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdReleaseFolder;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    AFolder.SaveToStream(AStream);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.ReleaseTransaction(
  ATransaction: TTransaction): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdReleaseTransaction;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    ATransaction.SaveToStream(AStream);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;


function TScanClient.ResendFolder(AFolder: TFolder): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdResendFolder;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    AFolder.SaveToStream(AStream);

    Result := fTransClient.Send(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.ResendTransaction(
  ATransaction: TTransaction): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdResendTransaction;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    ATransaction.SaveToStream(AStream);

    Result := fTransClient.Send(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.SendFolder(AFolder: TFolder): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdSendFolder;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    AFolder.SaveToStream(AStream);

    Result := fTransClient.Send(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.SendTransaction(ATransaction: TTransaction): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdSendTransaction;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    ATransaction.SaveToStream(AStream);

    Result := fTransClient.Send(AStream);
  finally
    AStream.Free;
  end;
end;

procedure TScanClient.SetTransClient(const Value: TImageTransClient);
begin
  fTransClient := Value;
  if fTransClient <> nil then fTransClient.FreeNotification(Self);
end;

function TScanClient.UpdateUser(AUser: TUser): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdUpdateUser;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    AUser.SaveToStream(AStream);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.InternalDeleteSubType(
  const AParentLevel: TStorageObjectLevel; AParentTypeID,
  ASubTypeID: string): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
  ATypeList: TTypeList;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    case AParentLevel of
     solFolder:      ACmd := mdDeleteTxnTypeToFldType;
     solTransaction: ACmd := mdDeleteDocTypeToTxnType;
    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.DeleteDocTypeFromTransactionType(ATransactionTypeID,
  ADocumentID: string): boolean;
begin
  Result := InternalDeleteSubType(solTransaction, ATransactionTypeID, ADocumentID);
end;

function TScanClient.DeleteTransTypeFromFolderType(AFolderTypeID,
  ATransactionTypeID: string): boolean;
begin
  Result := InternalDeleteSubType(solFolder, AFolderTypeID, ATransactionTypeID);
end;

function TScanClient.DeleteUser(AUserID: string): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
  AUser: TUser;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdDeleteUser;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    AUser := TUser.Create;
    try
      AUser.ID := AUserID;
      AUser.SaveToStream(AStream);
    finally
      AUser.Free;
    end;

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.ChangePassword(ANewPassword: string): boolean;
var
  AStream: TMemoryStream;
  ACmd: TMethodDefine;
  ASize: integer;
begin
  AStream := TMemoryStream.Create;
  try
    ACmd := mdChangePassword;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));

    ASize := Length(ANewPassword);
    AStream.Write(ASize, SizeOf(Integer));
    AStream.Write(ANewPassword[1], ASize);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.SetBranchID(AID: string): boolean;
var
  AStream: TMemoryStream;
  ACmd: TMethodDefine;
  AIDSize: integer;
begin
  AStream := TMemoryStream.Create;
  try
    ACmd := mdSetBranchID;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));

    AIDSize := Length(AID);
    AStream.Write(AIDSize, SizeOf(Integer));
    AStream.Write(AID[1], AIDSize);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.SetReleaserCount(ACount: integer): boolean;
var
  AStream: TMemoryStream;
  ACmd: TMethodDefine;
begin
  AStream := TMemoryStream.Create;
  try
    ACmd := mdSetReleaserCount;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));

    AStream.Write(ACount, SizeOf(ACount));

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.DeleteListValuePairDef(AParameterID: String): boolean;
var
  AStream: TMemoryStream;
  ACmd: TMethodDefine;
  AIDSize: integer;
begin
  AStream := TMemoryStream.Create;
  try
    ACmd := mdDeleteListValuePairDef;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));

    AIDSize := Length(AParameterID);
    AStream.Write(AIDSize, SizeOf(Integer));
    AStream.Write(AParameterID[1], AIDSize);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.DeleteListValuePair(AParameterID,
  AListValuePairID: String): boolean;
var
  AStream: TMemoryStream;
  ACmd: TMethodDefine;
  AIDSize: integer;
begin
  AStream := TMemoryStream.Create;
  try
    ACmd := mdDeleteListValuePair;
    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));

    // save AParemeterID into stream
    AIDSize := Length(AParameterID);
    AStream.Write(AIDSize, SizeOf(Integer));
    AStream.Write(AParameterID[1], AIDSize);

    // save AListValuePairID into stream
    AIDSize := Length(AListValuePairID);
    AStream.Write(AIDSize, SizeOf(Integer));
    AStream.Write(AListValuePairID[1], AIDSize);

    Result := fTransClient.Operate(AStream);
  finally
    AStream.Free;
  end;
end;

function TScanClient.GetListValuePairs(AID: string;
  APairList: TListValuePairList): boolean;
var
  AStream: TTempFileStream;
  ACmd: TMethodDefine;
begin
  AStream := TTempFileStream.Create(Temp_Prefix);
  try
    ACmd := mdGetListValuePairs;

    APairList.Clear;
    // Save Parent ID
    with APairList.New do
      ID := AID;

    AStream.WriteBuffer(ACmd, Sizeof(TMethodDefine));
    APairList.SaveToStream(AStream);

    Result := fTransClient.Retrieve(AStream);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -