?? frmovertime.pas
字號:
unit frmOverTime;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, DBCtrls, Mask;
type
TNowDataStatus=set of (ndsNormal,ndsAppend,ndsModify);
type
TOverTimeForm = class(TForm)
panChild: TPanel;
cmdClose: TButton;
grbOverTimeInfo: TGroupBox;
lblEndTime: TLabel;
lblStartTime: TLabel;
txtID: TDBEdit;
lblName: TLabel;
grbMemo: TGroupBox;
grbOverTimeList: TGroupBox;
grdOverTimeList: TDBGrid;
txtMemo: TDBMemo;
cmdAdd: TButton;
cmdModify: TButton;
cmdDelete: TButton;
txtStartTime: TEdit;
txtEndTime: TEdit;
procedure cmdCloseClick(Sender: TObject);
procedure cmdAddClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cmdModifyClick(Sender: TObject);
procedure cmdDeleteClick(Sender: TObject);
private
{ Private declarations }
NowDataStatus:TNowDataStatus;
procedure ChangeDisplayStatus(const AValue:TNowDataStatus);
public
{ Public declarations }
end;
var
OverTimeForm: TOverTimeForm;
implementation
uses mdDataBases, Common, frmMain;
{$R *.dfm}
procedure TOverTimeForm.cmdCloseClick(Sender: TObject);
begin
if OverTimeForm.NowDataStatus=[ndsNormal] then
begin
panChild.Parent := OverTimeForm;
OverTimeForm.Close;
end
else
begin
OverTimeForm.ChangeDisplayStatus([ndsNormal]);
dmDataSource.tblOverTime.Cancel;
dmDataSource.tblOverTime.CancelUpdates;
end;
end;
procedure TOverTimeForm.cmdAddClick(Sender: TObject);
var
fltOverTime,fltTimeCount:Real;
begin
if OverTimeForm.NowDataStatus=[ndsNormal] then
begin
dmDataSource.tblOverTime.Append;
ChangeDisplayStatus([ndsAppend]);
end
else
begin
dmDataSource.tblOverTime['Operator']:=MainForm.CurrentUserName;
dmDataSource.tblOverTime['START_TIME']:=StrToDateTime(txtStartTime.Text);
dmDataSource.tblOverTime['END_TIME']:=StrToDateTime(txtEndTime.Text);
fltOverTime:=ReadIniFileFloat('.\Setting.Ini','工資設定','加班獎金');
fltTimeCount:=DateTimeToReal(StrToDateTime(txtStartTime.Text),
StrToDateTime(txtEndTime.Text));
dmDataSource.tblOverTime['TIMECOUNT']:=fltTimeCount;
dmDataSource.tblOverTime['SALARY']:=fltTimeCount*fltOverTime;
dmDataSource.tblOverTime.Post;
dmDataSource.tblOverTime.ApplyUpdates;
ChangeDisplayStatus([ndsNormal]);
end;
end;
procedure TOverTimeForm.ChangeDisplayStatus(const AValue: TNowDataStatus);
begin
if AValue=[ndsNormal] then
begin
grbOverTimeInfo.Enabled:=False;
grbMemo.Enabled:=False;
cmdAdd.Caption:='添加(&A)';
cmdModify.Caption:='修改(&M)';
cmdClose.Caption:='關閉';
cmdAdd.Enabled:=True;
cmdModify.Enabled:=True;
cmdDelete.Enabled:=True;
OverTimeForm.NowDataStatus:=[ndsNormal];
end;
if AValue=[ndsAppend] then
begin
grbOverTimeInfo.Enabled:=True;
grbMemo.Enabled:=True;
cmdAdd.Caption:='保存(&S)';
cmdClose.Caption:='取消';
cmdModify.Enabled:=False;
cmdDelete.Enabled:=False;
OverTimeForm.NowDataStatus:=[ndsAppend];
end;
if AValue=[ndsModify] then
begin
grbOverTimeInfo.Enabled:=False;
grbMemo.Enabled:=True;
cmdModify.Caption:='保存(&S)';
cmdClose.Caption:='取消';
cmdAdd.Enabled:=False;
cmdDelete.Enabled:=False;
OverTimeForm.NowDataStatus:=[ndsModify];
end;
end;
procedure TOverTimeForm.FormCreate(Sender: TObject);
begin
OverTimeForm.ChangeDisplayStatus([ndsNormal]);
end;
procedure TOverTimeForm.cmdModifyClick(Sender: TObject);
begin
if OverTimeForm.NowDataStatus=[ndsNormal] then
begin
dmDataSource.tblOverTime.Edit;
ChangeDisplayStatus([ndsModify]);
end
else
begin
dmDataSource.tblOverTime['Person_ID']:='0001';
dmDataSource.tblOverTime.Post;
dmDataSource.tblOverTime.ApplyUpdates;
ChangeDisplayStatus([ndsNormal]);
end;
end;
procedure TOverTimeForm.cmdDeleteClick(Sender: TObject);
var
strDeleteConfimInfo:string;
intResult:Integer;
begin
strDeleteConfimInfo:='真的刪除操作員"'+
Trim('請假記錄')+'"嗎?';
intResult:=MessageBox(Application.Handle,pchar(strDeleteConfimInfo),
'確認',32+4);
if intResult=mrYes then
begin
dmDataSource.tblOverTime.Delete;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -