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

📄 ufunc.pas

📁 用于计算机专业程序设计 大家可以共同的分享. 如果喜欢请收藏
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UFunc;

interface
uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, Buttons, dbtables, db, UDM;
type
   Tperson = class(tobject)
      ID: string; //编号
      PName: string; //姓名
      Sex: string; //性别
      Birth: string; //出生年月
      Indate: string; //工作日期
      Outdate: string; //合同期限
      Dep: string; //部门
      Title: string; //职务
      Phone: string; //联系方式
      Pwd: string; //密码
      Role: string; //权限
      Pic: tbitmap; //照片
      Memo: string; //说明
   public
      function insert: boolean;
      procedure delete;
      procedure update;
      procedure setfields(query: tquery; Pic: tbitmap);
      function findperson(ID: string): boolean;
   end;

   Tdep = class(tobject)
      ID: string; //编号
      PName: string; //部门名称
      PMemo: string; //说明
   public
      procedure insert;
      procedure delete;
      procedure update;
      procedure setfields(query: tquery);
   end;

   Tkq = class(tobject)
      ID: string; //编号
      Pid: string; //人员编号
      Lx: string; //类型
      Pdate: string; //日期
      Ftime: string; //开始时间
      Etime: string; //截止时间
      Memo: string; //说明
   public
      procedure insert;
      procedure delete;
      procedure update;
      procedure setfields(query: tquery);
   end;

   Tchang = class(tobject)
      ID: string; //编号
      Pid: string; //人员编号
      Lx: string; //类型
      Pdate: string; //日期
      Dep: string; //原始部门
      Ndep: string; //当前部门
      Title:string; //原始职务
      Ntitle: string; //当前职务
      Memo: string; //说明
   public
      procedure insert;
      procedure delete;
      procedure update;
      procedure setfields(query: tquery);
   end;

   Tachi = class(tobject)
      ID: string; //编号
      Pid: string; //人员编号
      Lx: string; //类型
      Pdate: string; //日期
      Title: string; //名称
      Memo: string; //说明
   public
      procedure insert;
      procedure delete;
      procedure update;
      procedure setfields(query: tquery);
   end;

implementation
//********************************************//
//            Tperson类方法定义               //
//********************************************//

function Tperson.findperson(ID: string): boolean; //判定人员编号是否存在
var
   find: boolean;
   query: tquery;
begin
   find := false; //初始化变量
   //动态创建Query对象,实现查找记录
   query := tquery.Create(nil);
   query.DatabaseName := dm.db.DatabaseName;
   with query do
   begin
      close;
      sql.Text := 'select count(*)  from tperson  where ID=''' + ID + ''''; //查找记录
      open;
      first;
      find := fields[0].AsInteger > 0;
      free; //释放内存
   end;
   query := nil;
   result := find; //函数返回值
end;

procedure Tperson.setfields(query: tquery; Pic: tbitmap); //为表字段赋值
begin
   if Pic <> nil then
      TBlobField(query.fieldbyname('ppic')).assign(Pic); //照片
   with query do
   begin
      fieldbyname('id').asstring := ID; //编号
      fieldbyname('pname').asstring := PName; //姓名
      fieldbyname('ppwd').asstring := Pwd; //密码
      fieldbyname('prole').asstring := Role; //权限
      fieldbyname('psex').asstring := Sex; //性别
      fieldbyname('pdep').asstring := Dep; //部门
      fieldbyname('ptitle').asstring := Title; //职务
      fieldbyname('pphone').asstring := Phone; //联系方式
      fieldbyname('pbirth').asstring := Birth; //出生日期
      fieldbyname('pindate').asstring := Indate; //聘用日期
      fieldbyname('poutdate').asstring := Outdate; //合同日期
      fieldbyname('Pmemo').asstring := Memo; //说明
      post; //保存
   end;
end;

function Tperson.insert: boolean; //新增客户记录
var
   query: tquery;
begin
   if findperson(ID) then //判定当前人员编号是否重复
   begin
      application.MessageBox('人员编号重复!', '保存失败', MB_ICONSTOP + mb_ok);
      result := false; //返回新增失败
      exit;
   end;
   //动态创建Query对象,实现新增记录
   query := tquery.Create(nil);
   query.DatabaseName := dm.db.DatabaseName;
   with query do
   begin
      //设置数据访问组件为可写
      autorefresh := true;
      requestlive := true;
      close;
      sql.Text := 'select * from tperson where 1=2';
      open;
      insert; //新增空记录
   end;
   setfields(query, Pic);
   query.free; //释放内存
   query := nil;
   result := true; //返回新增成功
end;

procedure Tperson.update; //修改人员记录
var
   query: tquery;
begin
   //动态创建Query对象,实现修改记录
   query := tquery.Create(nil);
   query.DatabaseName := dm.db.DatabaseName;
   with query do
   begin
      //设置数据访问组件为可写
      autorefresh := true;
      requestlive := true;
      close;
      sql.Text := 'select * from tperson where id=''' + ID + '''';
      open;
      edit; //编辑记录
   end;
   setfields(query, Pic);
   query.free; //释放内存
   query := nil
end;

procedure Tperson.delete; //删除用户记录
var
   query: tquery;
begin
   if application.MessageBox(pchar('是否删除当前被选中的人员的全部信息?' + #13 + '编号:' + ID + #13 + '姓名:' + PName),
      '删除数据', MB_ICONQUESTION + MB_YESNO, ) = idno then exit; ;
   //动态创建Query对象,实现删除记录
   query := tquery.Create(nil);
   query.DatabaseName := dm.db.DatabaseName;
   with query do
   begin
      close;
      sql.Text := 'delete from tperson where id=''' + ID + ''''; //删除人员信息
      execsql;
      close;
      sql.Text := 'delete from tkq where Pid=''' + ID + ''''; //删除考勤信息
      execsql;
      close;
      sql.Text := 'delete from tchang where Pid=''' + ID + ''''; //删除简历信息
      execsql;
      close;
      sql.Text := 'delete from tachi where Pid=''' + ID + ''''; //删除奖惩培训信息
      execsql;
      free; //释放内存
   end;
   query := nil
end;

//********************************************//
//            Tdep类方法定义                  //
//********************************************//

procedure Tdep.setfields(query: tquery); //为表字段赋值
begin
   with query do
   begin
      fieldbyname('Dname').asstring := PName; //部门名称
      fieldbyname('Dmemo').asstring := PMemo; //部门说明
      post; //保存
   end;
end;

procedure Tdep.insert; //新增部门记录
var
   query: tquery;
begin
   //动态创建Query对象,实现新增记录
   query := tquery.Create(nil);
   query.DatabaseName := dm.db.DatabaseName;
   with query do
   begin
      //设置数据访问组件为可写
      autorefresh := true;
      requestlive := true;
      close;
      sql.Text := 'select * from tdep where 1=2';
      open;
      insert; //新增空记录
   end;
   setfields(query);
   query.free; //释放内存
   query := nil;
end;

procedure Tdep.update; //修改部门记录
var
   query: tquery;
begin
   //动态创建Query对象,实现修改记录
   query := tquery.Create(nil);
   query.DatabaseName := dm.db.DatabaseName;
   with query do
   begin
      //设置数据访问组件为可写
      autorefresh := true;
      requestlive := true;
      close;
      sql.Text := 'select * from tdep where id=''' + ID + '''';
      open;
      edit; //编辑记录
   end;
   setfields(query);
   query.free; //释放内存
   query := nil
end;

⌨️ 快捷键说明

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