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

📄 frmovertime.~pas

📁 被系统名叫生产信息管理系统
💻 ~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 + -