📄 ufunc.pas
字号:
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 + -