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

📄 archdataclass.pas

📁 档案信息管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
          StuffMain.edCompJST.SetFocus;
        end;
    end;
  end;

  if (StuffMain.edCompJET.Text <>'  -  -  ')then
  begin
    try
      StrToDateTime(StuffMain.edCompJET.Text);
    except
      on Exception do
        begin
          ValidCheck :=1;
          StuffMain.edCompJET.SetFocus;
        end;
    end;
  end;

  if (StuffMain.edCompCreateTime.Text <>'  -  -  ')then
  begin
    try
      StrToDateTime(StuffMain.edCompCreateTime.Text);
    except
      on Exception do
        begin
          ValidCheck :=2;
          StuffMain.edCompCreateTime.SetFocus;
        end;
    end;
  end;


end;

//添加新帐户
procedure AccountDBManager.AddNewAccount(Account : UserAccount);
  begin
      MainDataModule.AccountTable.Insert();
      MainDataModule.AccountTable.FieldByName('UserName').AsString := Account.UserName;
      MainDataModule.AccountTable.FieldByName('Password').AsString := Account.Password;
      MainDataModule.AccountTable.FieldByName('AccountRight').AsString := Account.Right;
  end;

//判断新建的帐户是否已经存在
function AccountDBManager.IsExist(var AccountName : String) : integer;
  var

     lookupResult : Variant;
     searchContent : Variant;
     resultString : String;

begin
    searchContent :=AccountName;
    IsExist :=0;
    lookupResult := MainDataModule.AccountTable.Lookup('UserName',AccountName,'UserName');
    resultString :=VarToStr(lookupResult);
    if (VarType(lookupResult) in [varNull]) then
    begin
        if resultString = AccountName then
             IsExist := 1
        else
             IsExist :=2
    end;
end;


//删除指定帐户
procedure AccountDBManager.DeleteAccount;
begin
    MainDataModule.AccountTable.Delete;
end;

//修改指定的帐户
procedure AccountDBManager.ModifyAccount(Account: UserAccount);
begin
    MainDataModule.AccountTable.Edit();
    MainDataModule.AccountTable.FieldByName('UserName').AsString := Account.UserName;
    MainDataModule.AccountTable.FieldByName('Password').AsString := Account.Password;
    MainDataModule.AccountTable.FieldByName('AccountRight').AsString := Account.Right;

end;

//查询帐户
function AccountDBManager.SearchAccount(AccountInfo :UserAccount): integer;
var
  searchResult: Variant;
begin
  searchResult :=trim(VarToStr(MainDataModule.AccountTable.Lookup('UserName',AccountInfo.UserName,'AccountRight')));

  SearchAccount :=0;
  if (VarType(searchResult) in [varNull]) then
      SearchAccount :=0
  else if searchResult ='操作员' then
      SearchAccount :=1
  else if searchResult ='管理员' then
      SearchAccount :=2;
end;


  Procedure UserAccount.SetUserAccount;
  begin
    UserName := AccountMainForm.edAccountName.Text;
    Password := AccountMainForm.edPassword.Text;
    Right := AccountMainForm.gbOpRight.Text;
  end;

//设置用户登录后的权限
   procedure UserAccount.SetRight(const opRight :boolean);
    begin
          ArchMainForm.loginsystem.Enabled :=true;
          if opRight then
            begin
              ArchMainForm.archManager.Enabled :=opRight;
              ArchMainForm.sysManager.Enabled :=opRight;
            end
          else
            begin
                ArchMainForm.archManager.Enabled :=true;
                ArchMainForm.sysManager.Enabled :=opRight;
            end;
    end;

//将选择的帐户记录信息加载到输入框中
    Procedure UserAccount.LoadAccountInput;
    begin
      AccountMainForm.edAccountName.Text := trim(MainDataModule.AccountTable.FieldByName('UserName').AsString);
      AccountMainForm.edPassword.Text := trim(MainDataModule.AccountTable.FieldByName('Password').AsString);
      AccountMainForm.gbOpRight.Text :=trim(MainDataModule.AccountTable.FieldByName('AccountRight').AsString);
    end;

//清空输入框中的信息
    procedure UserAccount.ZeroAccountInput;
    begin
      AccountMainForm.edAccountName.Text :='';
      AccountMainForm.edPassword.Text :='';
      AccountMainForm.gbOpRight.Text :='';
    end;

//用户帐户的合法检查
    function UserAccount.ValidCheck : boolean;
    begin
      if (AccountMainForm.edAccountName.Text = '') or
         (AccountMainForm.edPassword.Text = '') or
         (AccountMainForm.gbOpRight.text= '') then
            ValidCheck := false
      else
            ValidCheck := true;

    end;


//将选择员工信息加载到员工输入框中
procedure InputStuffInfo.LoadStuffInfo;
begin
    StuffMain.edAdress.Text  :=MainDataModule.StuffQuery.FieldByName('Address').AsString;
    StuffMain.edArchNo.Text :=IntToStr(MainDataModule.StuffQuery.FieldByName('ArchiveNo').AsInteger);
    StuffMain.edBirthday.Text :=DateTimeToStr(MainDataModule.StuffQuery.FieldByName('Birthday').AsDateTime);
    StuffMain.edDgree.Text :=MainDataModule.StuffQuery.FieldByname('Degree').AsString;
    StuffMain.gbDepName.Text :=MainDataModule.StuffQuery.FieldByname('DepName').AsString;
    StuffMain.gbGender.Text :=MainDataModule.StuffQuery.FieldByName('Gender').AsString;
    StuffMain.edJobStartDate.Text :=DateTimeToStr(MainDataModule.StuffQuery.FieldByName('JobStartDate').AsDateTime);
    StuffMain.edJobEndDate.Text := DateTimeToStr(MainDataModule.StuffQuery.FieldByName('JobEndDate').AsDateTime);
    StuffMain.edName.Text:=MainDataModule.StuffQuery.FieldByName('Name').Asstring;
    StuffMain.edPosistion.Text :=MainDataModule.StuffQuery.FieldByName('Posistion').AsString;
    StuffMain.edTelNo.Text :=MainDataModule.StuffQuery.FieldByName('TelNumber').AsString;
    StuffMain.edMemo.Text :=MainDataModule.StuffQuery.FieldByName('Note').AsString;
end;

//清空员工输入框
procedure InputStuffInfo.ZeroStuffInput;
begin
    StuffMain.edAdress.Text  :='';
    StuffMain.edArchNo.Text :='';
    StuffMain.edBirthday.Text :='';
    StuffMain.edDgree.Text :='';
    StuffMain.gbDepName.Text :='';
    StuffMain.gbGender.Text :='';
    StuffMain.edJobStartDate.Text :='';
    StuffMain.edJobEndDate.Text := '';
    StuffMain.edName.Text:='';
    StuffMain.edPosistion.Text :='';
    StuffMain.edTelNo.Text :='';
    StuffMain.edMemo.Text :='';

    MainDataModule.StuffTable.Last;
    StuffMain.edArchNo.Text :=IntToStr(MainDataModule.StuffTable.FieldByName('ArchiveNo').AsInteger+1);
end;

//合法性检查:没有输入返加1,输入的数据类型不正确返加2
//没有错误返回0
function InputStuffInfo.ValidCheck :integer;
begin
  ValidCheck :=0;
  if (StuffMain.edAdress.Text  = '') then
  begin
      StuffMain.edAdress.SetFocus;
      ValidCheck :=1;
  end;
  if (StuffMain.edBirthday.Text = '  -  -  ') then
  begin
      StuffMain.edBirthday.SetFocus;
      ValidCheck :=1;
  end
  else
   try
      StrToDateTime(StuffMain.edBirthday.Text);
    except
      on Exception do
        begin
          ValidCheck :=2;
          StuffMain.edBirthday.SetFocus;
        end;
   end;


  if (StuffMain.edDgree.Text = '')then
  begin
      StuffMain.edDgree.SetFocus;
      ValidCheck :=1;
  end;
  if(StuffMain.gbGender.Text ='')then
  begin
      StuffMain.gbGender.SetFocus;
      ValidCheck :=1;
  end;
  if(StuffMain.edName.Text ='')then
  begin
    StuffMain.edName.SetFocus;
    ValidCheck :=1;
  end;
  if(StuffMain.edPosistion.Text ='')then
  begin
    StuffMain.edPosistion.SetFocus;
    ValidCheck :=1;
  end;
  if(Stuffmain.edTelNo.Text ='')then
  begin
    stuffMain.edTelNo.SetFocus;
    ValidCheck :=1;
  end;
  if(Stuffmain.edJobStartDate.Text='  -  -  ')then
  begin
      StuffMain.edJobStartDate.SetFocus;
      ValidCheck :=1;
  end
  else
    try
      StrToDateTime(StuffMain.edJobStartDate.Text);
    except
      on Exception do
        begin
          ValidCheck :=2;
          StuffMain.edJobStartDate.SetFocus;
        end;
    end;
  if(Stuffmain.edJobEndDate.Text='  -  -  ')then
  begin
      StuffMain.edJobEndDate.SetFocus;
      ValidCheck :=1;
  end
  else
      try
        StrToDateTime(StuffMain.edJobEndDate.Text);
      except
        on Exception do
        begin
          ValidCheck :=2;
          StuffMain.edJobEndDate.SetFocus;
        end;
      end;
end;

//将输入的信息记录到类InputStuffInfo中
procedure InputStuffInfo.SetStuffInfo;
begin
      ArchiveNo :=StrToInt(StuffMain.edArchNo.Text);
      Name :=StuffMain.edName.Text;
      Address :=StuffMain.edAdress.Text;
      Birthday :=StrToDate(StuffMain.edBirthday.Text);
      CreateDate :=Date; //记录创建和修改该类的最后时间
      Creater :=ArchMainForm.currentAccount;//记录最后一次更新该记录的操作员
      Degree :=StuffMain.edDgree.Text;
      Gender :=Stuffmain.gbGender.Text;
      if StuffMain.gbDepName.Text='' then
          DepNo :=1
      else
          DepNo :=StrToInt(VarToStr(MainDataModule.DepTable.Lookup('DepName',trim(StuffMain.gbDepName.Text),'DepNo')));
      JobStartDate :=StrToDate(StuffMain.edJobStartDate.Text);
      JobEndDate :=StrToDate(StuffMain.edJobEndDate.Text);
      Position :=StuffMain.edPosistion.Text;
      TelNo :=StuffMain.edTelNo.Text;
      Note :=StuffMain.edMemo.Text;
end;

//新建修改员工记录
procedure StuffDBManager.AddModifyStuffInfo(opid :integer;StuffInfo: InputStuffInfo);
begin
  if opid=1 then
    begin
      MainDataModule.StuffTable.Insert;
      if StuffInfo.DepNo >1 then
      //添加新记录
        begin
          MainDataModule.DepTable.Locate('DepNo',StuffInfo.DepNo,[loCaseInsensitive]);
          MainDataModule.DepTable.Edit;
          MainDataModule.DepTable.FieldByName('DepMemberNo').AsInteger :=MainDataModule.DepTable.FieldByName('DepMemberNo').AsInteger+1;
          MainDataModule.DepTable.Post;
          MainDataModule.StuffTable.FieldByName('ArchiveNo').AsInteger:=StuffInfo.ArchiveNo;
        end
    end
  else
//修改记录
  begin
      MainDataModule.StuffTable.Locate('ArchiveNo',StuffInfo.ArchiveNo,[loCaseInsensitive]);
      MainDataModule.StuffTable.Edit;
  end;

  MainDataModule.StuffTable.FieldByName('Note').AsString :=StuffInfo.Note;
  MainDataModule.StuffTable.FieldByName('Address').AsString :=trim(StuffInfo.Address);
  MainDataModule.StuffTable.FieldByName('Birthday').AsDateTime :=StuffInfo.Birthday;
  MainDataModule.StuffTable.FieldByName('CreateTime').AsDateTime :=StuffInfo.CreateDate;
  MainDataModule.StuffTable.FieldByName('Creater').AsString :=StuffInfo.Creater;
  MainDataModule.StuffTable.FieldByName('Degree').AsString :=StuffInfo.Degree;

  MainDataModule.StuffTable.FieldByName('DepNo').AsInteger :=StuffInfo.DepNo;
  MainDataModule.StuffTable.FieldByName('Gender').AsString :=StuffInfo.Gender;
  MainDataModule.StuffTable.FieldByName('JobEndDate').AsDateTime :=StuffInfo.JobEndDate;
  MainDataModule.StuffTable.FieldByName('JobStartDate').AsDateTime :=StuffInfo.JobStartDate;
  MainDataModule.StuffTable.FieldByName('Name').AsString :=StuffInfo.Name;
  MainDataModule.StuffTable.FieldByName('Posistion').AsString :=StuffInfo.Position;
  MainDataModule.StuffTable.FieldByName('TelNumber').AsString :=StuffInfo.TelNo;
end;

//删除指定的记录
procedure StuffDBManager.DelStuffInfo;
begin
    MainDataModule.StuffTable.Locate('ArchiveNo',MainDataModule.StuffQuery.FieldByName('ArchiveNo').AsString,[loCaseInsensitive]);
    MainDataModule.StuffTable.delete;
    if MainDataModule.StuffQuery.FieldByName('DepNo').AsInteger >1 then
    begin
        MainDataModule.DepTable.Locate('DepNo',MainDataModule.StuffQuery.FieldByName('DepNo').AsInteger,[loCaseInsensitive]);
        MainDataModule.DepTable.Edit;
        MainDataModule.DepTable.FieldByName('DepMemberNo').AsInteger :=MainDataModule.DepTable.FieldByName('DepMemberNo').AsInteger -1;
    end;
end;

end.













⌨️ 快捷键说明

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