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

📄 changerecordunit.pas

📁 人事管理系统帮助人们管理复杂的关系
💻 PAS
字号:
unit ChangeRecordUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtDlgs, DB,ADODB, StdCtrls, ComCtrls, Buttons, ExtCtrls;

type
  TChangeRecord = class(TForm)
    DataShowPanel: TPanel;
    PageC: TPageControl;
    TSData1: TTabSheet;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    edtNo: TEdit;
    edtName: TEdit;
    CBSex: TComboBox;
    Panel2: TPanel;
    Image1: TImage;
    BtSelectPhoto: TSpeedButton;
    CBEducation: TComboBox;
    Birthday: TDateTimePicker;
    WorkTime: TDateTimePicker;
    CBDepartment: TComboBox;
    CBJob: TComboBox;
    Phone: TEdit;
    edtMoney: TEdit;
    edtAddress: TEdit;
    edtPwd: TEdit;
    TSData2: TTabSheet;
    Label13: TLabel;
    Memo1: TMemo;
    OpenPictureDialog1: TOpenPictureDialog;
    Panel1: TPanel;
    BTChangeData: TSpeedButton;
    BtReSet: TSpeedButton;
    BtExit: TSpeedButton;
    procedure FormShow(Sender: TObject);
    procedure BTChangeDataClick(Sender: TObject);
    procedure BtReSetClick(Sender: TObject);
    procedure BtExitClick(Sender: TObject);
    procedure BtSelectPhotoClick(Sender: TObject);
  private
    { Private declarations }

    Procedure Inition;

    Procedure SaveData;

    Procedure SavePhoto;

    Procedure ShowData;

  public
    { Public declarations }
  end;

var
  ChangeRecord: TChangeRecord;

implementation

uses DataMUnit;

{$R *.dfm}
Procedure TChangeRecord.Inition;
begin
  edtNo.Text :='';
  edtName.Text :='';
  CBSex.Text := '';
  CBEducation.Text := '';
  CBJob.Text := '';
  CBDepartment.Text := '';
  Birthday.Date := now;
  WorkTime.Date := now;
  Phone.Text := '';
  edtMoney.Text := '';
  edtAddress.Text := '';
  edtPwd.Text := '';
end;

Procedure TChangeRecord.ShowData;
var
  strm:tadoblobstream;
  bitmap:tbitmap;
begin


  strm := tadoblobstream.Create(tblobfield(DataM.ADOMSG.fieldbyname('照片')),bmread);
  try //try1
    strm.position:=0;
    image1.Picture.Graphic := nil; //清除图像
    // BMP、JPEG两种图像数据必需分别处理

    bitmap := tbitmap.Create ;
    try //try11
      bitmap.LoadFromStream(strm);
      image1.Picture.Graphic := bitmap;
    finally
      bitmap.Free;
    end; //end try11

  finally
    strm.Free ;
  end; //end try1

  if DataM.ADOMSG.FieldValues['员工编号'] = NULL then
    edtNo.Text := ''
  else
    edtNo.Text := DataM.ADOMSG.FieldValues['员工编号'];

  if DataM.ADOMSG.FieldValues['员工姓名'] = NULL then
    edtName.Text := ''
  else
    edtName.Text := DataM.ADOMSG.FieldValues['员工姓名'];

  if DataM.ADOMSG.FieldValues['性别'] = NULL then
    CBSex.Text := ''
  else
    CBSex.Text := DataM.ADOMSG.FieldValues['性别'];

  if DataM.ADOMSG.FieldValues['出生年月'] = NULL then
    Birthday.Date := now
  else
    Birthday.Date := DataM.ADOMSG.FieldValues['出生年月'];

  if DataM.ADOMSG.FieldValues['学历'] = NULL then
    CBEducation.Text := ''
  else
    CBEducation.Text := DataM.ADOMSG.FieldValues['学历'];

  if DataM.ADOMSG.FieldValues['部门'] = NULL then
    CBDepartment.Text := ''
  else
    CBDepartment.Text := DataM.ADOMSG.FieldValues['部门'];

  if DataM.ADOMSG.FieldValues['职位'] = NULL then
    CBJob.Text := ''
  else
    CBJob.Text := DataM.ADOMSG.FieldValues['职位'];

  if DataM.ADOMSG.FieldValues['开始工作时间'] = NULL then
    WorkTime.Date := now
  else
    WorkTime.Date := DataM.ADOMSG.FieldValues['开始工作时间'];

  if DataM.ADOMSG.FieldValues['工资'] = NULL then
    edtMoney.Text := ''
  else
    edtMoney.Text := DataM.ADOMSG.FieldValues['工资'];

  if DataM.ADOMSG.FieldValues['联系电话'] = NULL then
    Phone.Text := ''
  else
    Phone.Text := DataM.ADOMSG.FieldValues['联系电话'];

  if DataM.ADOMSG.FieldValues['密码'] = NULL then
    edtPwd.Text := ''
  else
    edtPwd.Text := DataM.ADOMSG.FieldValues['密码'];

  if DataM.ADOMSG.FieldValues['通信地址'] = NULL then
    edtAddress.Text := ''
  else
    edtAddress.Text := DataM.ADOMSG.FieldValues['通信地址'];

end;

Procedure TChangeRecord.SaveData;
begin
  DataM.ADOMSG.FieldByName('员工编号').AsString := Trim(edtNo.Text);
  DataM.ADOMSG.FieldByName('员工姓名').AsString := Trim(edtName.Text);
  DataM.ADOMSG.FieldByName('性别').AsString := Trim(CBSex.Text);
  DataM.ADOMSG.FieldByName('出生年月').AsDateTime := Birthday.Date;
  DataM.ADOMSG.FieldByName('学历').AsString := Trim(CBEducation.Text);
  DataM.ADOMSG.FieldByName('部门').AsString := Trim(CBDepartment.Text);
  DataM.ADOMSG.FieldByName('职位').AsString := Trim(CBJob.Text);
  DataM.ADOMSG.FieldByName('开始工作时间').AsDateTime := WorkTime.Date;
  DataM.ADOMSG.FieldByName('工资').AsString := Trim(edtMoney.Text);
  DataM.ADOMSG.FieldByName('联系电话').AsString := Trim(Phone.Text);
  DataM.ADOMSG.FieldByName('通信地址').AsString := Trim(edtAddress.Text);
  DataM.ADOMSG.FieldByName('密码').AsString := Trim(edtPwd.Text);
  DataM.ADOMSG.FieldByName('备注').AsString := Trim(memo1.Text);
end;

Procedure TChangeRecord.SavePhoto;
var
  strm:tmemorystream;
  ext:string;
begin
  if image1.picture.Graphic <> nil then //避免image1中无图像保存出错
    begin
      ext:=extractfileext(openpicturedialog1.FileName ); //取出文件的扩展名
      strm := tmemorystream.Create ;
      try
        image1.Picture.Graphic.SaveToStream(strm);
        DataM.ADOMSG.Edit ;
        strm.Position :=0;
        tblobfield(DataM.ADOMSG.FieldByName('照片')).LoadFromStream(strm);
        DataM.ADOMSG.Post;
      finally
        strm.Free ; //笔者发现如strm采用tblobstream类,程序运行到该语句会出现问题
      end;
    end;
end;


procedure TChangeRecord.FormShow(Sender: TObject);
begin
  showData;
end;

procedure TChangeRecord.BTChangeDataClick(Sender: TObject);
var sel:integer;
begin

  sel:=MessageBox(0,'要修改该记录吗?','人事管理系统V2.0',MB_YESNO+MB_ICONQUESTION);

  if sel = IDYES then
    begin
      DataM.ADOMSG.Edit;
      SaveData;
      DataM.ADOMSG.Post;
      SavePhoto;
      MessageBox(0,'修改记录成功!','人事管理系统V2.0', MB_YESNO+MB_ICONWARNING);
    end;
end;

procedure TChangeRecord.BtReSetClick(Sender: TObject);
begin
  Inition;
end;

procedure TChangeRecord.BtExitClick(Sender: TObject);
begin
  BtReSet.Enabled:=true;
  BtChangeData.Enabled:=true;
  ChangeRecord.Close;
end;

procedure TChangeRecord.BtSelectPhotoClick(Sender: TObject);
begin
  if openpicturedialog1.Execute then
    image1.Picture.LoadFromFile(openpicturedialog1.FileName );

end;

end.

⌨️ 快捷键说明

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