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

📄 archdataclass.pas

📁 档案信息管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
/////////////////////////////////////////////////
//本工程中的数据类,它是从Rose中分析得出的
//类的实现部分是由我们手动添加完善的用于后面的所有窗体部分
//////////////////////////////////////////////////
unit ArchDataClass;

interface
uses MainForm,ArchMain,AccountMain,DepartmentMain,ArchDataModule,windows, Variants,SysUtils,DB;

type
   DepDBManager = class;
   DepartmentInfo = class;
   SystemDBManager = class;
   StuffDBManager = class;
   InputStuffInfo = class;
   ConditionInfo = class;
   AccountDBManager = class;
   UserAccount = class;

   // 部门数据库的管理类
   DepDBManager = class
   public
        // 添加一个新的部门
      procedure AddNewDep(Department : DepartmentInfo);

      // 显示现有库中的所有部门信息
      procedure ShowDepRecords;

      // 选择一个部门,没有具体实现,Delphi的Grid控件实现了这一功能
      procedure SelectDepRecord;

      // 删除一个部门
      procedure DelDepartment;

      // 修改一个部门信息
      procedure ModifyDepInfo(Department : DepartmentInfo);
      // 检查库中是否已经存在当前将要输入的部门
      function IsExist(var DepName: String) :integer;
   end;

   // 用来保存输入部门信息的数据类
   DepartmentInfo = class
   public
      // 部门名称
      DepartName : String;

      // 部门领导人
      DepLeader : String;
   public
      // 将输入窗体中的数据保存到数据对象中
      procedure SetDepartmentInfo;

      // 将选定的部门信息加载到输入窗体中
      procedure LoadDepInfo;
      //清楚部门输入窗体中的内容
      procedure ZeroDepInput;
      //合法性检查
      function ValidCheck : boolean;
   end;

   // 系统数据库维护类
   SystemDBManager = class
   public
   //恢复数据库
      procedure RestoreSysDB;
   //备份数据库
      procedure BackupSysDB;
   end;

   //管理成员入库的管理类
   StuffDBManager = class
   public
   //向库中新加一条记录
      procedure AddModifyStuffInfo(opid :integer;stuffInfo :InputStuffInfo);
   //删除一条记录
      procedure DelStuffInfo;
   end;

   // 保存输入窗体中信息的数据类
   InputStuffInfo = class
   public
      //档案号
      ArchiveNo :Integer;
      // 名称
      Name : String;

      // 性别
      Gender : string ;

      // 出生日期
      Birthday : TdateTime;

      // 学历
      Degree : String;

      // 职位
      Position : String;

      // 签约时间
      JobStartDate : TDateTime;

      // 合同终止时间
      JobEndDate : TDateTime;
      //住址
      Address : String;
      //电话
      TelNo : string;
      //创建者
      Creater : String;
      //创建日期
      CreateDate :TDateTime;
      // 部门
      DepNo : Integer;
      //备注
      Note : AnsiString;
   public
      // 将输入窗体中的数据保存到数据对象中
      procedure SetStuffInfo;
      // 将选定的记录加载到输入窗体中
      procedure LoadStuffInfo;
      //清空输入窗体中的内容
      Procedure ZeroStuffInput;
      //检查输入数据的合法性
      function ValidCheck : integer;
   end;

   // 保存输入条件的数据类
   ConditionInfo = class
   public
      // 名称
      Name : String;

      // 性别
      Gender : String;

      // 学历
      Degree : String;

      // 签约时间
      JobStartDate : TDateTime;
      //截止时间
      JobEndDate :TDateTime;

      // 档案号
      ArchiveNo : Integer;

      // 部门号
      Department : String;

      // 年龄
      Birthday : TDateTime;

      // 建档时间
      CreateTime : TDateTime;

   public
      //输入住处的合法性检查
      function ValidCheck : integer;
      //将输入框中的信息加载到本类中
      procedure SetCondition;
      //清空条件输入框中的内容
      procedure ZeroContionInput;
   end;

   // 用来完成数据库操作的管理类
   AccountDBManager = class
   public
      // 添加一条新的帐户记录
      procedure AddNewAccount(Account :UserAccount);

      // 删除一条现有的帐户记录
      procedure DeleteAccount;

      // 修改一条现有的帐户记录
      procedure ModifyAccount(Account : UserAccount);

      // 查询帐户记录
      function SearchAccount(AccountInfo: UserAccount): Integer;
      //检查是否已存在该帐户
      function IsExist(var AccountName : String) : Integer;


   end;

   // 用来保存输入帐户信息的类
   UserAccount = class
   public
   //帐户名
      UserName : String;
      //密码
      Password : String;
      //帐户权利
      Right : String;
   public
          // 将输入窗体中的数据填入保存帐户信息的数据对象中
      procedure SetUserAccount;

      // 设置登录角色的操作权限
      procedure SetRight(const opRight :boolean);
      //将指定记录赋给输入窗体
      procedure LoadAccountInput;
      //清空输入窗体中的内容
      procedure ZeroAccountInput;
      //核法性检查
      function ValidCheck :boolean;
   end;

implementation
//添加新部门
procedure DepDBManager.AddNewDep(Department : DepartmentInfo);
begin
   MainDataModule.DepTable.Insert();
   MainDataModule.DepTable.FieldByName('DepName').AsString := Department.DepartName;
   MainDataModule.DepTable.FieldByName('DepLeader').AsString := Department.DepLeader;
   MainDataModule.DepTable.FieldByName('DepMemberNo').AsInteger := 1;
end;

//删除指定部门
procedure DepDBManager.DelDepartment;
begin
    MainDataModule.DepTable.Delete;
end;

//修改指定部门的信息
procedure DepDBManager.ModifyDepInfo(Department: DepartmentInfo);
begin
    MainDataModule.DepTable.Edit();
    MainDataModule.DepTable.FieldByName('DepName').AsString := Department.DepartName;
    MainDataModule.DepTable.FieldByName('DepLeader').AsString := Department.DepLeader;
end;


procedure DepDBManager.ShowDepRecords;
begin
//Delphi的Grid控件实现了这一功能
end;

Procedure DepDBManager.SelectDepRecord;
begin
//Delphi的Grid控件实现了这一功能
end;

//用输入框中的内容来设类中的DepartName和DepLeader属性
procedure DepartmentInfo.SetDepartmentInfo;
begin
    Departname :=DepMainForm.edDepName.Text;
    DepLeader :=DepMainForm.edDepLeader.Text;
end;

procedure DepartmentInfo.LoadDepInfo;
begin
    DepMainForm.edDepName.Text := trim(MainDataModule.DepTable.FieldByName('DepName').AsString);
    DepMainForm.edDepLeader.Text := trim(MainDataModule.DepTable.FieldByName('DepLeader').AsString);
end;

procedure DepartmentInfo.ZeroDepInput;
begin
  DepMainForm.edDepName.Text :='';
  DepMainForm.edDepLeader.Text :='';
end;

//合法性检查
function DepartmentInfo.ValidCheck : boolean;
begin
   if (DepMainForm.edDepName.Text = '') or
         (DepMainForm.edDepLeader.Text = '') then
            ValidCheck := false
      else
            ValidCheck := true;
end;

//判断帐户是否已经存在
function DepDBManager.IsExist(var DepName : String) : integer;
  var
     lookupResult : Variant;
     searchContent : Variant;
     returnString :String;
begin
    searchContent :=DepName;
    IsExist :=0;
    lookupResult := MainDataModule.DepTable.Lookup('DepName',DepName,'DepName');
    returnString :=trim(varToStr(lookupResult));
    if Not(VarType(lookupResult) in [varNull]) then
    begin
      if returnString = DepName then
          IsExist :=1
      else
          IsExist :=2
    end;

end;




//恢得数据库
procedure SystemDBManager.RestoreSysDB;
begin
//本例中没有实现该类,而由BRMainForm实现的
end;

//备份数据库
procedure SystemDBManager.BackupSysDB;
begin
//本例中没有实现该类,而由BRMainForm实现的
end;



//保存条件查询信息
procedure ConditionInfo.SetCondition;
begin
  ArchiveNo :=StrToInt(StuffMain.edArchNo.Text);
  CreateTime :=StrToDateTime(StuffMain.edCompCreateTime.Text);
  Birthday :=StrToDateTime(StuffMain.edCompBirthday.Text);
  Degree :=StuffMain.edCompDegree.Text;
  Department :=StuffMain.edCompDep.Text;
  Gender :=StuffMain.cbCompGender.Text;
  JobStartDate :=StrToDateTime(StuffMain.edCompJST.Text);
  JobEndDate :=StrToDateTime(StuffMain.edCompJET.Text);
  Name :=StuffMain.edName.Text;
end;

//清空条件输入框
procedure ConditionInfo.ZeroContionInput;
begin
  StuffMain.edArchNo.Text :='';
  StuffMain.edCompCreateTime.Text :='';
  StuffMain.edCompBirthday.Text :='';
  StuffMain.edCompDegree.Text :='';
  StuffMain.edCompDep.Text :='';
  StuffMain.cbCompGender.Text :='';
  StuffMain.edCompJST.Text :='';
  StuffMain.edCompJET.Text :='';
  StuffMain.edName.Text :='';
end;

//输入条件的合法性检查
function ConditionInfo.ValidCheck :integer;
begin
  ValidCheck :=0;
  if (StuffMain.edCompBirthday.Text <> '  -  -  ') then
  begin
   try
      StrToDateTime(StuffMain.edCompBirthday.Text);
    except
      on Exception do
        begin
          ValidCheck :=1;
          StuffMain.edCompBirthday.SetFocus;
        end;
    end;
  end;
  if (StuffMain.edCompJST.Text <>'  -  -  ')then
  begin
    try
      StrToDateTime(StuffMain.edCompJST.Text);
    except
      on Exception do
        begin
          ValidCheck :=1;

⌨️ 快捷键说明

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