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

📄 umain.pas

📁 用于计算机专业程序设计 大家可以共同的分享. 如果喜欢请收藏
💻 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 + -