📄 unit_attendconfig.pas
字号:
sg_Time.Enabled :=true;
end
{*********************如果新建未考勤理由**********************}
else if pagecontrol1.ActivePage = sht_Reason then
begin
if (not ReasonAppendOrEdit) and (not edt_Reasonid.Enabled) and (edt_Reasonid.Text<>'') then
begin
i:=MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveReasonInfo then i:=2;
if i=2 then exit;
end;
ReasonAppendOrEdit:=true;
sbtn_edit.Enabled :=true;
MakeReasonEnabled(true);
ClearReasonInfo();
sg_Time.Enabled :=true;
temp:=GetDateString('DBMeirong');//to get current datetime such as 2003-10-13 13:37:03
temp:=copy(temp,1,4)+copy(temp,6,2)+copy(temp,9,2); //to set value of temp like '20031013'
edt_Reasonid.Text :=GetNo('DBMeirong','specialreason','','','reason_id',temp,2); //to set value of Empno like '2003101301'
end;
end;
procedure Tfrm_attendconfig.sbtn_editClick(Sender: TObject);
var
i:integer;
begin
{**************************修改时间设置************************}
if pagecontrol1.ActivePage = sht_Time then
begin
if TimeAppendOrEdit and cbb_Timename.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveTimeInfo then i:=2;
if i=2 then exit;
end;
if sg_Time.Cells[0,sg_Time.Row]='' then exit;
TimeAppendOrEdit:=false;
cbb_Timename.Text := sg_Time.Cells[0,sg_Time.Row];
dtp_Timetime.Text := sg_Time.Cells[1,sg_Time.Row];
MakeTimeEnabled(true);
cbb_timename.Enabled :=false;
sg_Time.Enabled :=false;
sbtn_edit.Enabled :=false;
end
{**************************修改未考勤原因************************}
else if pagecontrol1.ActivePage = sht_Reason then
begin
if ReasonAppendOrEdit and edt_Reasonid.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveReasonInfo then i:=2;
if i=2 then exit;
end;
if sg_Reason.Cells[0,sg_Reason.Row]='' then exit;
ReasonAppendOrEdit:=false;
edt_Reasonid.Text :=sg_Reason.Cells[0,sg_Reason.Row];
mm_remark.Text := sg_Reason.Cells[1,sg_Reason.Row];
MakeReasonEnabled(true);
edt_Reasonid.Enabled :=false;
sg_Reason.Enabled :=false;
sbtn_edit.Enabled :=false;
end
end;
procedure Tfrm_attendconfig.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action:=cafree;
frm_attendConfig:=nil;
end;
procedure Tfrm_attendconfig.sbtn_saveClick(Sender: TObject);
var
i:integer;
temp:string;
begin
{**********************进行时间设置的保存********************}
if pagecontrol1.ActivePage = sht_Time then
begin
if not SaveTimeInfo then exit;
if TimeAppendOrEdit then
begin
StringGridInsert(sg_Time);
i:=1;
end else i:=sg_Time.Row;
with sg_Time do
begin
cells[0,i] := trim(cbb_timename.Text );
cells[1,i] := dtp_timetime.Text;
end;
if TimeAppendOrEdit then
begin
ClearTimeInfo();
if sg_Time.rowcount>3 then sbtn_Back.Enabled:=true;
end
else begin
MakeTimeEnabled(false);
ClearTimeInfo();
sg_Time.Enabled:=true;
sbtn_save.Enabled :=false;
end;
sbtn_delete.enabled:=true;
sbtn_edit.Enabled :=true;
end
{**********************进行理由的保存********************}
else if pagecontrol1.ActivePage = sht_Reason then
begin
if not SaveReasonInfo then exit;
if ReasonAppendOrEdit then
begin
StringGridInsert(sg_Reason);
i:=1;
end else i:=sg_Reason.Row;
with sg_Reason do
begin
cells[0,i] := trim(edt_Reasonid.Text );
cells[1,i] := trim(mm_remark.Text );
end;
if ReasonAppendOrEdit then
begin
ClearReasonInfo();
temp:=GetDateString('DBMeiRong');
temp:=copy(temp,1,4)+copy(temp,6,2)+copy(temp,9,2);
edt_Reasonid.Text :=GetNo('DBMeiRong','specialreason','','','reason_id',temp,2);
if sg_Reason.rowcount>3 then sbtn_Back.Enabled:=true;
end
else begin
MakeReasonEnabled(false);
ClearReasonInfo();
sg_Reason.Enabled:=true;
sbtn_save.Enabled :=false;
end;
sbtn_delete.enabled:=true;
sbtn_edit.Enabled :=true;
end;
end;
procedure Tfrm_attendconfig.sbtn_deleteClick(Sender: TObject);
begin
{******************进行时间设置的删除*************************}
if pagecontrol1.ActivePage = sht_Time then
begin
if sg_Time.Cells[0,sg_Time.Row]='' then exit;
if MessageBox(handle,'你确定要删除该时间设置信息吗?','询问',mb_yesno+mb_iconquestion)<> IDYes then exit;
with dmod.qrydata do
begin
close;
SQL.Text := 'delete from AttendTime where time_name='+#39+sg_Time.Cells[0,sg_Time.Row]+#39;
ExecSQL;
end;
StringGridDelete(sg_Time,sg_Time.Row);
if sg_Time.Row = sg_Time.RowCount - 1 then
begin
if sg_Time.RowCount > 2 then
sg_Time.Row := sg_Time.Row - 1
else
sbtn_back.Enabled := false;
end;
if sg_Time.Row = 1 then sbtn_front.Enabled := false;
if sg_Time.Row = sg_Time.RowCount - 2 then sbtn_back.Enabled := false;
end
{******************进行理由的删除*************************}
else if pagecontrol1.ActivePage = sht_Reason then
begin
if sg_Reason.Cells[0,sg_Reason.Row]='' then exit;
if MessageBox(handle,'你确定要删除未考勤理由吗?','询问',mb_yesno+mb_iconquestion)<> IDYes then exit;
with dmod.qrydata do
begin
close;
SQL.Text := 'delete from specialreason where reason_id='+#39+sg_Reason.Cells[0,sg_Reason.Row]+#39;
ExecSQL;
end;
StringGridDelete(sg_Reason,sg_Reason.Row);
if sg_Reason.Row = sg_Reason.RowCount - 1 then
begin
if sg_Reason.RowCount > 2 then
sg_Reason.Row := sg_Reason.Row - 1
else
sbtn_back.Enabled := false;
end;
if sg_Reason.Row = 1 then sbtn_front.Enabled := false;
if sg_Reason.Row = sg_Reason.RowCount - 2 then sbtn_back.Enabled := false;
end
end;
procedure Tfrm_attendconfig.sbtn_backClick(Sender: TObject);
var
i:integer;
begin
{*********************时间设置向后移动*****************************}
if pagecontrol1.ActivePage = sht_Time then
begin
if sbtn_save.Enabled and sbtn_append.Enabled then
begin
i:=MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveTimeInfo then i:=2;
if i=2 then exit;
if i=7 then begin ClearTimeInfo(); sg_Time.Enabled:=true;MakeTimeEnabled(false);sbtn_save.Enabled :=false;sbtn_delete.Enabled :=true;end;
end;
if sg_Time.Row > sg_Time.RowCount -2 then
begin
sbtn_back.Enabled :=false;
exit;
end;
sbtn_front.Enabled :=true;
sbtn_edit.Enabled :=true;
sg_Time.Row :=sg_Time.Row +1;
end
else if pagecontrol1.ActivePage = sht_Reason then
begin
{*********************时间设置向后移动*****************************}
if pagecontrol1.ActivePage = sht_Reason then
begin
if sbtn_save.Enabled and sbtn_append.Enabled then
begin
i:=MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveReasonInfo then i:=2;
if i=2 then exit;
if i=7 then begin ClearReasonInfo(); sg_Reason.Enabled:=true;MakeReasonEnabled(false);sbtn_save.Enabled :=false;sbtn_delete.Enabled :=true;end;
end;
if sg_Reason.Row > sg_Reason.RowCount -2 then
begin
sbtn_back.Enabled :=false;
exit;
end;
sbtn_front.Enabled :=true;
sbtn_edit.Enabled :=true;
sg_Reason.Row :=sg_Reason.Row +1;
end
end;
end;
procedure Tfrm_attendconfig.sbtn_frontClick(Sender: TObject);
var
i:integer;
begin
{*************************时间设置向前移动*****************************}
if pagecontrol1.ActivePage = sht_Time then
begin
if sbtn_save.Enabled and sbtn_append.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveTimeInfo then i:=2;
if i=2 then exit;
if i=7 then begin ClearTimeInfo();sg_Time.Enabled:=true;MakeTimeEnabled(false);sbtn_save.Enabled :=false;sbtn_delete.Enabled :=true; end;
end;
if sg_Time.Row =1 then
begin
sbtn_front.Enabled:=false;
exit;
end;
sbtn_back.Enabled :=true;
sbtn_edit.Enabled :=true;
sg_Time.Row :=sg_Time.Row -1;
end
else if pagecontrol1.ActivePage = sht_Reason then
begin
{*************************时间设置向前移动*****************************}
if pagecontrol1.ActivePage = sht_Reason then
begin
if sbtn_save.Enabled and sbtn_append.Enabled then
begin
i := MessageBox(handle,'你要保存操作的数据吗?','询问',mb_yesnocancel+mb_iconquestion);
if i=6 then
if not SaveReasonInfo then i:=2;
if i=2 then exit;
if i=7 then begin ClearReasonInfo();sg_Reason.Enabled:=true;MakeReasonEnabled(false);sbtn_save.Enabled :=false;sbtn_delete.Enabled :=true; end;
end;
if sg_Reason.Row =1 then
begin
sbtn_front.Enabled:=false;
exit;
end;
sbtn_back.Enabled :=true;
sbtn_edit.Enabled :=true;
sg_Reason.Row :=sg_Reason.Row -1;
end
end;
end;
procedure Tfrm_attendconfig.sg_TimeSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if ARow=sg_Time.RowCount-1 then
CanSelect:=false
else
begin
sbtn_back.Enabled :=true;
sbtn_front.Enabled :=true;
if ARow = sg_Time.rowcount-2 then sbtn_back.Enabled := false;
if ARow=1 then sbtn_front.Enabled := false;
CanSelect:=true;
end;
end;
procedure Tfrm_attendconfig.sg_ReasonSelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if ARow=sg_Reason.RowCount-1 then
CanSelect:=false
else
begin
sbtn_back.Enabled :=true;
sbtn_front.Enabled :=true;
if ARow = sg_Reason.rowcount-2 then sbtn_back.Enabled := false;
if ARow=1 then sbtn_front.Enabled := false;
CanSelect:=true;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -