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

📄 uperson.pas

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