📄 uperson.pas
字号:
unit Uperson;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, dbtables, db;
type
TFperson = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
eid: TEdit;
ename: TEdit;
cbsex: TComboBox;
etitle: TEdit;
ephone: TEdit;
dbirth: TDateTimePicker;
dout: TDateTimePicker;
din: TDateTimePicker;
cbdep: TComboBox;
epass: TEdit;
mnote: TMemo;
bsave: TButton;
bclose: TButton;
OpenD: TOpenDialog;
Panel1: TPanel;
Ipic: TImage;
procedure bcloseClick(Sender: TObject);
procedure showdetail(id: string; modify: boolean);
procedure bsaveClick(Sender: TObject);
procedure IpicDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Fperson: TFperson;
implementation
uses Udm, ufunc;
{$R *.dfm}
procedure TFperson.showdetail(id: string; modify: boolean);
begin
cbdep.Clear;
//将全部部门名称添加到部门下拉列表中
with dm.Qdep do
begin
close;
open;
first;
while not eof do
begin
cbdep.Items.Add(fieldbyname('dname').AsString); //添加列表项
next;
end;
end;
if not (id = 'new') then //不是新增人员记录,显示当前选中的人员记录
begin
eid.Enabled := false; //人员编号不可改
ipic.Picture.Assign(TBlobField(dm.qperson.fieldbyname('ppic'))); //读取照片
with dm.qperson do
begin
eid.Text := fieldbyname('id').AsString; //编号
ename.Text := fieldbyname('pname').AsString; //姓名
cbsex.ItemIndex := cbsex.Items.IndexOf(fieldbyname('psex').AsString); //性别
dbirth.Date := fieldbyname('pbirth').AsDateTime; //出生日期
din.Date := fieldbyname('pindate').AsDateTime; //受聘日期
dout.Date := fieldbyname('poutdate').AsDateTime; //合同日期
ephone.Text := fieldbyname('pphone').AsString; //联系方式
cbdep.ItemIndex := cbdep.Items.IndexOf(fieldbyname('pdep').AsString); //部门
etitle.Text := fieldbyname('ptitle').AsString; //职务
epass.Text := fieldbyname('ppwd').AsString; //密码
mnote.Lines.Text := fieldbyname('pmemo').AsString; //备注
end;
end
else //新增数据时初始化部分项目值
begin
cbsex.ItemIndex := 0;
cbdep.ItemIndex := 0;
bsave.Hint := 'new';
end;
bsave.Visible := modify; //根据modify值设置保存按钮显示与否
end;
procedure TFperson.bcloseClick(Sender: TObject);
begin
close
end;
procedure TFperson.bsaveClick(Sender: TObject);
var
itemuser: tperson;
begin
itemuser := tperson.Create; //创建tperson对象的实例
itemuser.id := eid.Text; //当前编辑的人员编号
itemuser.Pname:= ename.Text; //当前编辑的姓名
itemuser.Sex := cbsex.Text; //当前编辑的性别
itemuser.Birth := formatdatetime('yyyy-mm-dd', dbirth.Date); //当前编辑的出生日期
itemuser.indate := formatdatetime('yyyy-mm-dd', din.Date); //当前编辑的聘用日期
itemuser.outdate := formatdatetime('yyyy-mm-dd', dout.Date); //当前编辑的合同日期
itemuser.dep := cbdep.Text; //当前编辑的部门
itemuser.title := etitle.Text; //当前编辑的职务
itemuser.Phone := ephone.Text; //当前编辑的联系方式
itemuser.pwd := epass.Text; //当前编辑的密码
itemuser.memo := mnote.Lines.Text; //当前编辑的备注
itemuser.Pic := Ipic.Picture.Bitmap;
if bsave.Hint = 'new' then //根据标志判定为新增数据
begin
//调用对象的insert方法实现数据保存
if not itemuser.insert then //新增失败后不返回至信息列表窗口
begin
itemuser.Free; //释放对象、内存
itemuser := nil;
exit;
end;
end
else
itemuser.update; //调用对象的update方法实现数据保存
itemuser.Free; //释放对象、内存
itemuser := nil;
//刷新数据库
dm.qperson.Close;
dm.qperson.Open;
close
end;
procedure TFperson.IpicDblClick(Sender: TObject);
begin
//打开文件选择窗口
OpenD.Execute;
if OpenD.FileName <> '' then
Ipic.Picture.LoadFromFile(OpenD.FileName); //显示被选中的照片
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -