📄 umain.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 + -