📄 unit_employee.pas
字号:
begin
try
MemStream := TMemoryStream.Create ;
Img_photo.Picture.Graphic.SaveToStream(MemStream);
ParamByName('photo').LoadFromStream(MemStream,FtGraphic);
finally
MemStream := nil;
MemStream.Free ;
end;
end else ParamByName('photo').AsBlob :='';
ParamByName('remark').AsString := mm_remark.Text ;
ExecSQL;
end;
finally
try
dmod.Database.Commit ;
except
dmod.Database.Rollback ;
MessageBox(handle,'操作失败,请重试!','提示',mb_ok+mb_iconinformation);
result := false;
end;
end;
end;
{************************************************}
procedure Tfrm_employee.sbtn_frontClick(Sender: TObject);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_content then
if edt_Empno.Enabled then
if sbtn_append.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveInfo then i:=2;
if i=2 then exit;
end;
if sg.Row=1 then
begin
sbtn_front.Enabled := false;
exit;
end;
sbtn_back.Enabled := true;
sg.Row := sg.Row-1;
if pagecontrol1.ActivePage = sht_content then
begin
GetInfo();
MakeEnabled(false);
end;
end;
procedure Tfrm_employee.sbtn_backClick(Sender: TObject);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_content then
if edt_empno.Enabled then
if sbtn_append.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //select yes
if not SaveInfo then i:=2; //if save error
if i=2 then exit;
end;
if sg.Row > sg.RowCount-2 then
begin
sbtn_back.Enabled := false;
exit;
end;
sbtn_front.Enabled := true;
sg.Row := sg.Row+1;
if pagecontrol1.ActivePage = sht_content then
begin
GetInfo();
MakeEnabled(false);
end;
end;
procedure Tfrm_employee.sbtn_appendClick(Sender: TObject);
var
i : integer;
temp : string;
begin
if pagecontrol1.ActivePage = sht_content then //to determine whethter sht_content is shown
if (not AppendOrEdit) and edt_Empno.Enabled then //to determine status of Edit and Components' Enabled
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //select yes
if not SaveInfo then i:=2;
if i=2 then exit;
end;
AppendOrEdit := true;
pagecontrol1.ActivePage := sht_content;
MakeEnabled(true);
ClearInfo;
temp:=GetDateString('DBMeirong');
temp:=copy(temp,1,4)+copy(temp,6,2)+copy(temp,9,2);
edt_Empno.Text :=GetNo('DBMeirong','Employee','','','Emp_no',temp,2);
end;
procedure Tfrm_employee.sbtn_editClick(Sender: TObject);
var
i:integer;
begin
if pagecontrol1.ActivePage = sht_content then
if AppendOrEdit and edt_Empno.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveInfo then i:=2;
if i=2 then exit;
end;
if sg.Cells[0,sg.Row]='' then exit;
if pagecontrol1.ActivePage <> sht_content then pagecontrol1.ActivePage := sht_content;
if AppendOrEdit then GetInfo;
AppendOrEdit := false;
MakeEnabled(true);
edt_Empno.Enabled := false;
end;
procedure Tfrm_employee.sbtn_saveClick(Sender: TObject);
var
i : integer;
temp : string;
begin
if not SaveInfo then exit;
if AppendOrEdit then
begin
StringGridInsert(sg);
i:=1;
end else i:=sg.Row ;
with sg do
begin
Cells[0,i] := trim(edt_Empno.Text );
Cells[1,i] := trim(edt_Empname.Text );
Cells[2,i] := trim(cbb_Sex.Text );
Cells[3,i] := trim(DateToString(dtp_Birthday.Date));
Cells[4,i] := trim(cbb_type.Text );
end;
if AppendOrEdit then
begin
ClearInfo;
temp := GetDateString('DBMeirong');
temp := copy(temp,1,4) + copy(temp,6,2) + copy(temp,9,2);
edt_Empno.Text := GetNo('DBMeirong','Employee','','','Emp_no',temp,2);
if sg.RowCount > 3 then sbtn_back.Enabled := true;
end else MakeEnabled(false);
end;
procedure Tfrm_employee.sbtn_deleteClick(Sender: TObject);
begin
if sg.cells[0,sg.Row]='' then exit;
if MessageBox(handle,'你确定要删除该员工信息吗?','询问',mb_yesno+mb_iconquestion)<> IDYes then exit;
with dmod.qrydata do
begin
close;
SQL.Text := 'delete from employee where emp_no='+#39+sg.Cells[0,sg.Row]+#39;
ExecSQL;
end;
StringGridDelete(sg,sg.Row);
if sg.Row = sg.RowCount - 1 then
begin
if sg.RowCount > 2 then
sg.Row := sg.Row - 1
else
sbtn_back.Enabled := false;
end;
if sg.Row = 1 then sbtn_front.Enabled := false;
if sg.Row = sg.RowCount - 2 then sbtn_back.Enabled := false;
end;
procedure Tfrm_employee.sbtn_printClick(Sender: TObject);
begin
DoReportEmployee;
end;
procedure Tfrm_employee.sbtn_closeClick(Sender: TObject);
begin
close;
end;
procedure Tfrm_employee.sgDblClick(Sender: TObject);
begin
sbtn_editClick(nil);
end;
procedure Tfrm_employee.sgSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
if ARow = sg.RowCount - 1 then
CanSelect:= false
else
begin
sbtn_back.Enabled := true;
sbtn_front.Enabled := true;
if ARow = sg.RowCount - 2 then sbtn_back.Enabled := false;
if ARow = 1 then sbtn_front.Enabled := false;
CanSelect := true;
end;
end;
procedure Tfrm_employee.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
var
i:integer;
begin
AllowChange := true;
if not sbtn_append.Enabled then exit;
if PageIndex=1 then
begin
if edt_Empno.Enabled then
begin
AppendOrEdit := false;
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //
begin
sbtn_saveClick(nil);
if not DoChange then i:=2;
end;
if i=7 then MakeEnabled(true);
if i=2 then AllowChange:=true;
end;
end else if (sg.Cells [0,sg.Row]='') and not AppendOrEdit then AllowChange:=true;
end;
procedure Tfrm_employee.sht_contentShow(Sender: TObject);
begin
PageIndex := 1;
if not AppendOrEdit then
begin
if sg.Cells[0,sg.Row]<>'' then GetInfo;
MakeEnabled(false);
end;
end;
procedure Tfrm_employee.sht_mainShow(Sender: TObject);
begin
PageIndex:=0;
if not sbtn_append.Enabled then exit;
sbtn_delete.Enabled := true;
sbtn_save.Enabled := false;
end;
procedure Tfrm_employee.FormResize(Sender: TObject);
begin
StringGridAutoSize(sg);
end;
procedure Tfrm_employee.FormKeyPress(Sender: TObject; var Key: Char);
var
temp,temp1:boolean;
begin
temp := false;
temp1:= true;
if (key=#13) and sbtn_save.Enabled then
begin
temp := true;
if (ActiveControl is TMemo) then
if TMemo(ActiveControl).Name = 'mm_Remark' then temp1:=false;
end;
if temp then
begin
if temp1 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0)
end else if sbtn_save.Enabled then sbtn_saveClick(nil);
end;
end;
procedure Tfrm_employee.FormClose(Sender: TObject;
var Action: TCloseAction);
var
i:integer;
begin
if PageControl1.ActivePage = sht_content then
if sbtn_append.Enabled then
begin
if edt_EmpNo.enabled then
begin
i:=MessageBox(handle,'在窗口关闭的同时,您要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then //点击是
begin
if SaveInfo then i:=7 else i:=2;
end;
if i=2 then //点击取消
begin
action:=canone;
exit;
end;
end;
end;
action:= cafree;
frm_employee := nil;
end;
procedure Tfrm_employee.bbSelectClick(Sender: TObject);
var
FileName:String;
begin
if openpicturedialog1.Execute then
FileName:=Openpicturedialog1.FileName ;
if filename='' then exit;
img_photo.Picture.LoadFromFile(filename);
end;
procedure Tfrm_employee.bbCancelClick(Sender: TObject);
begin
img_photo.Picture.Graphic := nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -