📄 changerecordunit.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 + -