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

📄 umain.pas

📁 在在一原封不动硒鼓二可耕地z经理可耕地可耕地枯草杆菌二期工程二枯枯树可耕地票面苛
💻 PAS
字号:
unit umain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, Jpeg, ExtCtrls, XPMenu, ComObj, ComCtrls, IniFiles;

type
  TfrmPer = class(TForm)
    mnuPer: TMainMenu;
    miSys: TMenuItem;
    miChgPwd: TMenuItem;
    miAdmin: TMenuItem;
    miLogin: TMenuItem;
    space01: TMenuItem;
    miExit: TMenuItem;
    tmrMain: TTimer;
    sbPer: TStatusBar;
    tmrTime: TTimer;
    miStaff: TMenuItem;
    miStaInfo: TMenuItem;
    miAdds: TMenuItem;
    miInqus: TMenuItem;
    miEdits: TMenuItem;
    miDels: TMenuItem;
    miSet: TMenuItem;
    miDep: TMenuItem;
    space02: TMenuItem;
    miAbout: TMenuItem;
    miTrs: TMenuItem;
    miCData: TMenuItem;
    miBkData: TMenuItem;
    miData: TMenuItem;
    miReData: TMenuItem;
    miSetp: TMenuItem;
    miRepir: TMenuItem;
    imgMain: TImage;
    xmPer: TXPMenu;
    procedure miChgPwdClick(Sender: TObject);
    procedure miExitClick(Sender: TObject);
    procedure miLoginClick(Sender: TObject);
    procedure tmrMainTimer(Sender: TObject);
    procedure miAdminClick(Sender: TObject);
    procedure tmrTimeTimer(Sender: TObject);
    procedure miTrsClick(Sender: TObject);
    procedure miStaInfoClick(Sender: TObject);
    procedure miAddsClick(Sender: TObject);
    procedure miEditsClick(Sender: TObject);
    procedure miDelsClick(Sender: TObject);
    procedure miInqusClick(Sender: TObject);
    procedure miDepClick(Sender: TObject);
    procedure miAboutClick(Sender: TObject);
    procedure miCDataClick(Sender: TObject);
    procedure miBkDataClick(Sender: TObject);
    procedure miReDataClick(Sender: TObject);
    procedure miSetpClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure miRepirClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmPer: TfrmPer;

implementation

uses ulogin, uchgpwd, uglobal, uadmin, ustainfo, ufind, udep, uabout,
  udata, uset;

var
  sPath: string;

{$R *.dfm}

procedure TfrmPer.FormCreate(Sender: TObject);
var
  iFile: TIniFile;
begin
  sPath := ExtractFilePath(Application.ExeName);
  iFile := TIniFile.Create(sPath + 'perset.ini');
  sTopic := iFile.ReadString('sTopic', 'topic', '秋风人事管理系统1.6正式版之档案管理');
  bgstr := iFile.ReadString('sysbg', 'bground', 'main.jpg');
  iFile.Free;
  if sTopic = '' then sTopic := '秋风人事管理系统1.6正式版之档案管理';
  if (bgStr = '') or (not FileExists(sPath + bgStr)) then
    bgStr := 'main.jpg';
  imgMain.Picture.LoadFromFile(sPath + bgStr);
  self.Caption := sTopic;
  Application.ShowHint := true;
  Application.HintColor := clLime;
end;

procedure TfrmPer.tmrMainTimer(Sender: TObject);
var
  frmLogin: TfrmLogin;
begin
  sbPer.Panels[0].Text := '管理员:还没有登录';
  sbPer.Panels[1].Text := sTopic;
  tmrMain.Enabled := false;
  frmLogin := TfrmLogin.Create(self);
  if frmLogin.ShowModal <> mrOk then
    Close;
  FreeAndNil(frmLogin);
  self.Caption := sTopic;
  self.Caption := self.Caption + '  管理员:' + sUserID;

  sbPer.Panels[0].Text := '管理员:' + sUserID;
  if sysAdmin then
  begin
    self.Caption := self.Caption + '  --系统管理员';
    sbPer.Panels[0].Text := sbPer.Panels[0].Text + '  您是系统管理员';
  end
  else
    sbPer.Panels[0].Text := sbPer.Panels[0].Text + '  您是普通管理员';
end;

procedure TfrmPer.miChgPwdClick(Sender: TObject);
var
  frmChgPwd: TfrmChgPwd;
begin
  sbPer.Panels[1].Text := '更新您的密码';
  frmChgPwd := TfrmChgPwd.Create(self);
  if frmChgPwd.ShowModal = mrOk then
    MessageBox(self.Handle, '密码更新成功!', '提示',  mb_IconInformation + mb_Ok);
  FreeAndNil(frmChgPwd);
  sbPer.Panels[1].Text := sTopic;
end;

procedure TfrmPer.miAdminClick(Sender: TObject);
var
  frmAdmin: TfrmAdmin;
begin
  sbPer.Panels[1].Text := '管理员管理--此为系统管理员权限';
  if sysAdmin = true then
  begin
    frmAdmin := TfrmAdmin.Create(self);
    frmAdmin.ShowModal;
    FreeAndNil(frmAdmin);
  end
  else
    MessageBox(handle, '这是系统管理员的权限!', '提示',  mb_IconWarning + mb_Ok);
  sbPer.Panels[1].Text := sTopic;
end;

procedure TfrmPer.miLoginClick(Sender: TObject);
begin
  tmrMainTimer(Sender);
end;

procedure TfrmPer.miExitClick(Sender: TObject);
begin
  sbPer.Panels[1].Text := '退出系统';
  if MessageBox(self.Handle, '要退出系统么?', '提示',  mb_IconQuestion + mb_YesNo) = idYes then
    Close;
  sbPer.Panels[1].Text := sTopic;
end;

procedure TfrmPer.tmrTimeTimer(Sender: TObject);
var
  wdStr: string;
begin
  case DayOfWeek(Date()) of
    1: wdStr := '星期日';
    2: wdStr := '星期一';
    3: wdStr := '星期二';
    4: wdStr := '星期三';
    5: wdStr := '星期四';
    6: wdStr := '星期五';
    7: wdStr := '星期六';
  end;
  sbPer.Panels[2].Text := FormatDateTime('yyyy年mm月dd日 hh时nn分ss秒', Now()) + '  [' + wdStr + ']';
end;

procedure TfrmPer.miStaInfoClick(Sender: TObject);
begin
  sbPer.Panels[1].Text := '员工档案信息';
  if not Assigned(frmStainfo) then
    frmStainfo := TfrmStainfo.Create(Application)
  else if frmStainfo.WindowState = wsMinimized then
    frmStainfo.WindowState := wsNormal;
end;

procedure TfrmPer.miAddsClick(Sender: TObject);
begin
  sbPer.Panels[1].Text := '档案信息添加';
  if not Assigned(frmStainfo) then
    frmStainfo := TfrmStainfo.Create(Application)
  else if frmStainfo.WindowState = wsMinimized then
    frmStainfo.WindowState := wsNormal;
  frmStainfo.btnaddClick(Sender);
end;

procedure TfrmPer.miEditsClick(Sender: TObject);
begin
  if not Assigned(frmStainfo) then
    frmStainfo := TfrmStainfo.Create(Application)
  else if frmStainfo.WindowState = wsMinimized then
    frmStainfo.WindowState := wsNormal;
  if frmStainfo.tvper.selected.data <> nil then
    frmStainfo.btneditClick(Sender)
  else
    MessageBox(self.Handle, '请先选择记录!', '提示', mb_IconInformation + mb_Ok);
end;

procedure TfrmPer.miDelsClick(Sender: TObject);
begin
  if not Assigned(frmStainfo) then
    frmStainfo := TfrmStainfo.Create(Application)
  else if frmStainfo.WindowState = wsMinimized then
    frmStainfo.WindowState := wsNormal;
  if frmStainfo.tvPer.Selected.Data <> nil then
    frmStainfo.btndelClick(Sender)
  else
    MessageBox(self.Handle, '请先选择记录!', '提示', mb_IconInformation + mb_Ok);
end;

procedure TfrmPer.miInqusClick(Sender: TObject);
var
  frmFind: TfrmFind;
begin
  if not Assigned(frmStainfo) then
    frmStainfo := TfrmStainfo.Create(Application)
  else if frmStainfo.WindowState = wsMinimized then
    frmStainfo.WindowState := wsNormal;
  frmFind := TfrmFind.Create(self);
  frmFind.Show;
end;

procedure TfrmPer.miDepClick(Sender: TObject);
var
  frmDep: TfrmDep;
begin
  frmDep := TfrmDep.Create(self);
  frmDep.ShowModal;
  FreeAndNil(frmDep);
end;

procedure TfrmPer.miSetpClick(Sender: TObject);
var
  frmSet: Tfrmset;
begin
  frmSet := Tfrmset.Create(self);
  frmSet.ShowModal;
  FreeAndNil(frmSet);
end;
     
procedure TfrmPer.miTrsClick(Sender: TObject);
begin
  miTrs.Checked := not miTrs.Checked;
  if miTrs.Checked then
  begin
    self.AlphaBlend := true;
    self.AlphaBlendValue := 125;
  end
  else
    self.AlphaBlend := false;
end;

procedure TfrmPer.miBkDataClick(Sender: TObject);
var
  sDBName: string;
begin
  if dmPer.acPer.Connected then dmPer.acPer.Close;
  sDBName := ExtractFilePath(Application.ExeName)+ 'permis.bak';
  if FileExists(sDBName) then DeleteFile(sDBName);
  CopyFile(Pchar('permis.mdb'), Pchar(sDBName), true);
  MessageBox(self.Handle, '数据库备份成功!', '提示', mb_IconInformation + mb_Ok);
  dmPer.acPer.Open;
end;

procedure TfrmPer.miCDataClick(Sender: TObject);
  procedure CompactAccess(sDBName: string; JetId: string = '4.0');   //压缩
  var
    AVariant: Variant;
  begin
    if FileExists(sDBName + '.tmp') then DeleteFile(sDBName + '.tmp');
    AVariant := CreateOleObject('JRO.JetEngine');
    AVariant.CompactDataBase('Provider=Microsoft.Jet.OLEDB.' + JetId + ';Data Source=' + sDBName ,
    'Provider=Microsoft.Jet.OLEDB.' + JetId + ';Data Source=' + sDBName + '.tmp');
    DeleteFile(sDBName);
    ReNameFile(sDBName + '.tmp', sDBName);
  end;
var
  sDBName: string;
begin
  if dmPer.acPer.Connected then dmPer.acPer.Close;
  Sleep(500);
  sDBName := ExtractFilePath(Application.ExeName) + 'permis.mdb';
  CompactAccess(sDBName);
  MessageBox(self.Handle, '数据库压缩成功!', '提示', mb_IconInformation + mb_Ok);
  dmPer.acPer.Open;
end;

procedure TfrmPer.miRepirClick(Sender: TObject);
  procedure CompactAccess(sDBName: string; JetId: string = '4.0');   //压缩
  var
    AVariant: Variant;
  begin
    if FileExists(sDBName + '.tmp') then DeleteFile(sDBName + '.tmp');
    AVariant := CreateOleObject('JRO.JetEngine');
    AVariant.CompactDataBase('Provider=Microsoft.Jet.OLEDB.' + JetId + ';Data Source=' + sDBName ,
    'Provider=Microsoft.Jet.OLEDB.' + JetId + ';Data Source=' + sDBName + '.tmp');
    DeleteFile(sDBName);
    ReNameFile(sDBName + '.tmp', sDBName);
  end;
var
  sDBName: string;
begin
  if dmPer.acPer.Connected = true then dmPer.acPer.Close;
  Sleep(500);
  sDBName := ExtractFilePath(Application.ExeName) + 'permis.mdb';
  CompactAccess(sDBName);
  MessageBox(self.Handle, '数据库修复成功!', '提示', mb_IconInformation + mb_Ok);
  dmPer.acPer.Open;
end;

procedure TfrmPer.miReDataClick(Sender: TObject);
  function GetFileCreationTime(const FileName: String): TDateTime;
  var
    FileTime: TFileTime;
    LocalFileTime: TFileTime;
    hFile: THandle;
    SystemTime: TSystemTime;
  begin
    Result := 0;
    FileTime.dwLowDateTime := 0;
    FileTime.dwHighDateTime := 0;
    hFile := FileOpen(FileName, fmShareDenyNone);
    try
      if hFile <> 0 then
      begin
        //参数,文件的时间:       创   末访       末改
        Windows.GetFileTime(hFile, nil, @FileTime, nil);
        FileTimeToLocalFileTime(FileTime, LocalFileTime);
        FileTime := LocalFileTime;
      end;
    finally
      FileClose(hFile);
    end;
    if FileTimeToSystemTime(FileTime, SystemTime) then
      Result := SystemTimeToDateTime(SystemTime);
  end;

var
  sDBName, dbbname: string;
begin
  sDBName := ExtractFilePath(Application.ExeName)+ 'permis.mdb';
  dbbname := ExtractFilePath(Application.ExeName)+ 'permis.bak';
  if not FileExists(dbbname) then
    MessageBox(self.Handle, '没有备份数据,不能还原', '提示', mb_IconInformation + mb_Ok)
  else
  begin
    if MessageBox(self.Handle, Pchar('备份日期为' + DateTimeToStr(GetFileCreationTime(dbbname)) + ',确认要还原数据么?'), '提示', mb_IconQuestion + mb_YesNo) = idYes then
    begin
      if dmPer.acPer.Connected = true then dmPer.acPer.Close;
      sDBName := ExtractFilePath(Application.ExeName)+ 'permis.mdb';
      dbbname := ExtractFilePath(Application.ExeName)+ 'permis.bak';

      CopyFile(Pchar(dbbname), Pchar(sDBName), true);
      MessageBox(self.Handle, '数据库还原成功!', '提示', mb_IconInformation + mb_Ok);
      dmPer.acPer.Open;
    end;
  end;
end;

procedure TfrmPer.miAboutClick(Sender: TObject);
var
  frmAbout: TfrmAbout;
begin
  frmAbout := TfrmAbout.Create(self);
  frmAbout.ShowModal;
  FreeAndNil(frmAbout);
end;

procedure TfrmPer.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  //AnimateWindow(handle, 1800, AW_HIDE or AW_CENTER);
  //AnimateWindow(handle, 1800, AW_HIDE or AW_BLEND);
end;

end.

⌨️ 快捷键说明

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