📄 umain.pas
字号:
unit Umain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus, ToolWin, StdCtrls, ExtCtrls, Grids, DBGrids,
DBCtrls;
type
Tfmain = class(TForm)
pcmain: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
tbnew: TToolButton;
tbmod: TToolButton;
tbdel: TToolButton;
tbclose: TToolButton;
Panel1: TPanel;
cbdep: TComboBox;
chdep: TCheckBox;
chid: TCheckBox;
eid: TEdit;
chname: TCheckBox;
ename: TEdit;
bsearch: TButton;
dbGperson: TDBGrid;
dbgchang: TDBGrid;
dbgkq: TDBGrid;
dbgachi: TDBGrid;
dbgdep: TDBGrid;
DBMemo1: TDBMemo;
DBMemo2: TDBMemo;
DBMemo3: TDBMemo;
DBMemo4: TDBMemo;
DBMemo5: TDBMemo;
procedure tbcloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure showperson(state: integer);
procedure showkq(state: integer);
procedure showdep(state: integer);
procedure showchang(state: integer);
procedure showachi(state: integer);
procedure dbGpersonDblClick(Sender: TObject);
procedure tbnewClick(Sender: TObject);
procedure tbmodClick(Sender: TObject);
procedure chdepClick(Sender: TObject);
procedure chidClick(Sender: TObject);
procedure chnameClick(Sender: TObject);
procedure bsearchClick(Sender: TObject);
procedure tbdelClick(Sender: TObject);
procedure dbgchangDblClick(Sender: TObject);
procedure dbgkqDblClick(Sender: TObject);
procedure dbgachiDblClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure deleteperson();
procedure deletechang();
procedure deletekq();
procedure deleteachi();
procedure deletedep();
procedure dbgdepDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmain: Tfmain;
userid: string;
username: string;
userrole: string;
password: string;
userdep: string;
implementation
uses Uperson, Udm, ufunc, Ukq, Uachi, Uchang, Udep;
{$R *.dfm}
procedure Tfmain.tbcloseClick(Sender: TObject);
begin
close
end;
procedure Tfmain.showkq(state: integer);
//state:-1表示浏览、0表示修改、1表示新增
var
id: string;
begin
if state < 1 then //显示当前人员信息:编辑或浏览
id := dm.qkq.fieldbyname('id').AsString
else //新增人员信息
id := 'new';
if fkq = nil then fkq := tfkq.Create(nil);
//修改或新增操作,且为人事部人员时,提供编辑权限
fkq.showdetail(id, (state > -1) and (pos('人事部', userdep) > 0));
fkq.ShowModal;
fkq.Free;
fkq := nil;
end;
procedure Tfmain.showachi(state: integer);
//state:-1表示浏览、0表示修改、1表示新增
var
id: string;
begin
if state < 1 then //显示当前人员信息:编辑或浏览
id := dm.qachi.fieldbyname('id').AsString
else //新增人员信息
id := 'new';
if fachi = nil then fachi := tfachi.Create(nil);
//修改或新增操作,且为人事部人员时,提供编辑权限
fachi.showdetail(id, (state > -1) and (pos('人事部', userdep) > 0));
fachi.ShowModal;
fachi.Free;
fachi := nil;
end;
procedure Tfmain.showchang(state: integer);
//state:-1表示浏览、0表示修改、1表示新增
var
id: string;
begin
if state < 1 then //显示当前人员信息:编辑或浏览
id := dm.qchang.fieldbyname('id').AsString
else //新增人员信息
id := 'new';
if fchang = nil then fchang := tfchang.Create(nil);
//修改或新增操作,且为人事部人员时,提供编辑权限
fchang.showdetail(id, (state > -1) and (pos('人事部', userdep) > 0));
fchang.ShowModal;
fchang.Free;
fchang := nil;
end;
procedure Tfmain.showperson(state: integer);
//state:-1表示浏览、0表示修改、1表示新增
var
id: string;
begin
if state < 1 then //显示当前人员信息:编辑或浏览
id := dm.qperson.fieldbyname('id').AsString
else //新增人员信息
id := 'new';
if fperson = nil then fperson := tfperson.Create(nil);
//修改或新增操作,且为人事部人员时,提供编辑权限
fperson.showdetail(id, (state > -1) and (pos('人事部', userdep) > 0));
fperson.ShowModal;
fperson.Free;
fperson := nil;
end;
procedure Tfmain.showdep(state: integer);
//state:-1表示浏览、0表示修改、1表示新增
var
id: string;
begin
if state < 1 then //显示当前人员信息:编辑或浏览
id := dm.qdep.fieldbyname('id').AsString
else //新增人员信息
id := 'new';
if fdep = nil then fdep := tfdep.Create(nil);
//修改或新增操作,且为人事部人员时,提供编辑权限
fdep.showdetail(id, (state > -1) and (pos('人事部', userdep) > 0));
fdep.ShowModal;
fdep.Free;
fdep := nil;
end;
procedure Tfmain.FormShow(Sender: TObject);
begin
//根据用户登录部门设定新增、修改、删除按钮可视否
tbnew.Visible := pos('人事部', userdep) > 0; //人事部具有新增权限
tbmod.Visible := pos('人事部', userdep) > 0; //人事部具有修改权限
tbdel.Visible := pos('人事部', userdep) > 0; //人事部具有删除权限
//打开对人员信息表、考勤表、奖惩培训表、简历表、部门表的数据库连接
dm.qperson.close;
dm.qperson.Open;
dm.qdep.close;
dm.qdep.Open;
dm.qkq.close;
dm.qkq.Open;
dm.qchang.close;
dm.qchang.Open;
dm.qachi.close;
dm.qachi.Open;
//将全部部门名称添加到部门下拉列表中
cbdep.Clear;
with dm.qdep do
begin
close;
Open;
first;
while not eof do
begin
cbdep.Items.Add(fieldbyname('dname').AsString); //添加列表项
next;
end;
end;
end;
procedure Tfmain.dbGpersonDblClick(Sender: TObject);
begin
showperson(-1)
end;
procedure Tfmain.tbnewClick(Sender: TObject);
begin
case pcmain.ActivePageIndex of
0: showperson(1); //当前显示人员信息页时新增人员信息记录
1: showchang(1); //当前显示工作简历页时新增工作简历记录
2: showkq(1); //当前显示人员考勤页时新增人员考勤记录
3: showachi(1); //当前显示奖惩培训页时新增奖惩培训记录
4: showdep(1); //当前显示部门信息页时新增部门信息记录
end;
end;
procedure Tfmain.tbmodClick(Sender: TObject);
begin
case pcmain.ActivePageIndex of
0: showperson(0); //当前显示人员信息页时修改人员信息记录
1: showchang(0); //当前显示工作简历页时修改工作简历记录
2: showkq(0); //当前显示人员考勤页时修改人员考勤记录
3: showachi(0); //当前显示奖惩培训页时修改奖惩培训信息记录
4: showdep(0); //当前显示部门信息页时修改部门信息记录
end;
end;
procedure Tfmain.chdepClick(Sender: TObject);
begin
cbdep.Enabled := chdep.Checked; //根据选择组件选中与否设置部门下拉框是否可用
end;
procedure Tfmain.chidClick(Sender: TObject);
begin
eid.Enabled := chid.Checked; //根据选择组件选中与否设置编号编辑框是否可用
end;
procedure Tfmain.chnameClick(Sender: TObject);
begin
ename.Enabled := chname.Checked; //根据选择组件选中与否设置姓名编辑框是否可用
end;
procedure Tfmain.bsearchClick(Sender: TObject);
var
temS: string;
begin
temS := '';
//设置了部门条件
if (chdep.Checked) and (cbdep.Text <> '') then
temS := '(pdep=''' + cbdep.Text + ''')';
//设置了人员编号条件
if (chid.Checked) and (eid.Text <> '') then
begin
if temS = '' then
temS := '(id like ''' + eid.Text + '%'')'
else
temS := temS + ' and (id like ''' + eid.Text + '%'')';
end;
//设置了人员姓名条件
if (chname.Checked) and (ename.Text <> '') then
begin
if temS = '' then
temS := '(pname like ''' + ename.Text + '%'')'
else
temS := temS + ' and (pname like ''' + ename.Text + '%'')';
end;
if temS = '' then
temS := 'select * from tperson order by pdep,pname'
else
temS := 'select * from tperson where ' + temS + ' order by pdep,pname';
//根据条件重新查询数据库,显示符合条件的人员信息
dm.qperson.close;
dm.qperson.SQL.Text := temS;
dm.qperson.Open;
end;
procedure Tfmain.deleteperson();
var
itemperson: tperson;
begin
itemperson := tperson.Create; //创建Tperson类对象实例
itemperson.id := dm.qperson.fieldbyname('id').AsString; //获取人员编号
itemperson.pname := dm.qperson.fieldbyname('pname').AsString; //获取人员姓名
itemperson.delete; //删除记录
itemperson.Free;
itemperson:=nil;
dm.qperson.Close;
dm.qperson.Open;
end;
procedure Tfmain.deletechang();
var
itemchang: tchang;
begin
itemchang := tchang.Create; //创建tchang类对象实例
itemchang.id := dm.qchang.fieldbyname('id').AsString; //获取简历编号
itemchang.lx := dm.qchang.fieldbyname('lx').AsString; //获取类型
itemchang.delete; //删除记录
itemchang.Free;
itemchang:=nil;
dm.qchang.Close;
dm.qchang.Open;
end;
procedure Tfmain.deletekq();
var
itemkq: tkq;
begin
itemkq := tkq.Create; //创建tkq类对象实例
itemkq.id := dm.qkq.fieldbyname('id').AsString; //获取考勤编号
itemkq.lx := dm.qkq.fieldbyname('lx').AsString; //获取类型
itemkq.delete; //删除记录
itemkq.Free;
itemkq:=nil;
dm.qkq.Close;
dm.qkq.Open;
end;
procedure Tfmain.deleteachi();
var
itemachi: tachi;
begin
itemachi := tachi.Create; //创建tachi类对象实例
itemachi.id := dm.qachi.fieldbyname('id').AsString; //获取奖惩编号
itemachi.title := dm.qachi.fieldbyname('title').AsString; //获取奖惩名称
itemachi.delete; //删除记录
itemachi.Free;
itemachi:=nil;
dm.qachi.Close;
dm.qachi.Open;
end;
procedure Tfmain.deletedep();
var
itemdep: tdep;
begin
itemdep := tdep.Create; //创建tdep类对象实例
itemdep.id := dm.qdep.fieldbyname('id').AsString; //获取部门编号
itemdep.Pname := dm.qdep.fieldbyname('name').AsString; //获取部门名称
itemdep.delete; //删除记录
itemdep.Free;
itemdep:=nil;
dm.Qdep.Close;
dm.Qdep.Open;
end;
procedure Tfmain.tbdelClick(Sender: TObject);
begin
case pcmain.ActivePageIndex of
0: deleteperson; //当前显示人员信息页时删除人员信息
1: deletechang; //当前显示工作简历页时删除工作简历记录
2: deletekq; //当前显示人员考勤页时删除人员考勤记录
3: deleteachi; //当前显示奖惩培训页时删除奖惩培训信息记录
4: deletedep; //当前显示部门信息页时删除部门信息记录
end;
end;
procedure Tfmain.dbgchangDblClick(Sender: TObject);
begin
showchang(-1);
end;
procedure Tfmain.dbgkqDblClick(Sender: TObject);
begin
showkq(-1)
end;
procedure Tfmain.dbgachiDblClick(Sender: TObject);
begin
showachi(-1)
end;
procedure Tfmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//关闭对人员信息表、考勤表、奖惩培训表、简历表、部门表的数据库连接
dm.qperson.close;
dm.qdep.close;
dm.qkq.close;
dm.qchang.close;
dm.qachi.close;
end;
procedure Tfmain.dbgdepDblClick(Sender: TObject);
begin
showdep(-1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -