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

📄 employeditfrm.pas

📁 考勤管理是企业内部管理的重要环节和基础
💻 PAS
字号:
unit EmployEditFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  SDIfrm, ComCtrls, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, DBGrids;

resourcestring
  sEmpNull='员工姓名不能为空!';
  sDepNull='部门名称不能为空!';
  sEmpCode='员工编号不能为空!';

type
  TEmployEditForm = class(TSDIForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    bbtnConfirm: TBitBtn;
    bbtnCancel: TBitBtn;
    bbtnAdd: TBitBtn;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    Label9: TLabel;
    DBEdit9: TDBEdit;
    Label12: TLabel;
    DBEdit12: TDBEdit;
    Label13: TLabel;
    DBEdit13: TDBEdit;
    Label14: TLabel;
    DBEdit14: TDBEdit;
    Label15: TLabel;
    DBEdit15: TDBEdit;
    DBCheckBox2: TDBCheckBox;
    dbcbCulture: TDBComboBox;
    Label16: TLabel;
    DBEdit2: TDBEdit;
    Label18: TLabel;
    DBEdit8: TDBEdit;
    Label8: TLabel;
    sbBirthday: TSpeedButton;
    Label7: TLabel;
    DBEdit7: TDBEdit;
    sbPostDate: TSpeedButton;
    Label11: TLabel;
    DBEdit11: TDBEdit;
    Label2: TLabel;
    DBEdit3: TDBEdit;
    dbrgCountMeth: TDBRadioGroup;
    dblcExpressions: TDBLookupComboBox;
    Label19: TLabel;
    dbcbSex: TDBComboBox;
    Label10: TLabel;
    Label17: TLabel;
    Label20: TLabel;
    DBEdit4: TDBEdit;
    Label21: TLabel;
    dbcbDepartment: TDBLookupComboBox;
    DBEdit1: TDBEdit;
    DBEdit5: TDBEdit;
    DBLookupComboBox1: TDBLookupComboBox;
    procedure bbtnConfirmClick(Sender: TObject);
    procedure bbtnCancelClick(Sender: TObject);
    procedure bbtnAddClick(Sender: TObject);
    procedure sbPostDateClick(Sender: TObject);
    procedure sbBirthdayClick(Sender: TObject);
    procedure DBEdit8KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit7KeyPress(Sender: TObject; var Key: Char);
    procedure dbrgCountMethClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure bbtnConfirmEnter(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure dbcbDepartmentClick(Sender: TObject);
    procedure DBLookupComboBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    procedure ShowModalPopup(popup: integer);
    { Public declarations }
  end;

var
  EmployEditForm: TEmployEditForm;

implementation

uses unDM2, Globals, Pickdate, Dialog;

{$R *.DFM}

procedure TEmployEditForm.ShowModalPopup(popup : integer);
begin
  case popup of
    0: begin
        bbtnAdd.Visible:=true;
        DM2.tblEmploy.append;
        ShowModal;
       end;
    1: begin
        bbtnAdd.Visible:=false;
//        DM2.cdsCurrency.refresh;
        DM2.tblEmploy.edit;
        ShowModal;
       end;
  end;
end;

procedure TEmployEditForm.bbtnConfirmClick(Sender: TObject);
begin
  inherited;
  DM2.tblEmploy.Post;
  EmployEditForm.close;
end;

procedure TEmployEditForm.bbtnCancelClick(Sender: TObject);
begin
  inherited;
  DM2.tblEmploy.Cancel;
  EmployEditForm.close;
end;

procedure TEmployEditForm.bbtnAddClick(Sender: TObject);
begin
  inherited;
  DM2.tblEmploy.Append;
  Dbedit2.SetFocus;
end;

procedure TEmployEditForm.sbPostDateClick(Sender: TObject);
begin
  inherited;
  BrDateForm.Date := DM2.tblEmployPostDate.Value; 	{ start with current date }
  if BrDateForm.ShowModal = mrOk then
  begin
    DM2.tblEmploy.Edit;
    DM2.tblEmployPostDate.Value := BrDateForm.Date;
  end;
end;

procedure TEmployEditForm.sbBirthdayClick(Sender: TObject);
begin
  inherited;
  BrDateForm.Date := DM2.tblEmployPostDate.Value; 	{ start with current date }
  if BrDateForm.ShowModal = mrOk then
  begin
    DM2.tblEmploy.Edit;
    DM2.tblEmployBirthday.Value := BrDateForm.Date;
//    SaleDateEdit.SelectAll;
  end;
end;

procedure TEmployEditForm.DBEdit8KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if Key = ^J then
  begin
    sbBirthdayClick(Sender);
    Key := #0;
  end;
end;

procedure TEmployEditForm.DBEdit7KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if Key = ^J then
  begin
    sbPostDateClick(Sender);
    Key := #0;
  end;
end;

procedure TEmployEditForm.dbrgCountMethClick(Sender: TObject);
begin
  inherited;
  case dbrgCountMeth.ItemIndex of
    0:begin
        dblcExpressions.Enabled:=False;
        DBedit6.Enabled:=True;
      end;
    1:begin
        dblcExpressions.Enabled:=False;
        DBedit6.Enabled:=False;
      end;
    2:begin
        dblcExpressions.Enabled:=True;
        DBedit6.Enabled:=False;
      end;
  end;
//  dblcExpressions.Refresh;
//  dbEdit6.Refresh;
end;

procedure TEmployEditForm.FormCreate(Sender: TObject);
begin
  inherited;
  if GetText=true then 
    DBEdit6.ReadOnly:=False
  else
    DBEdit6.ReadOnly:=True;
  case DM2.tblEmployCountMeth.Value of
    0:begin
        dblcExpressions.Enabled:=False;
        DBedit6.Enabled:=True;
      end;
    1:begin
        dblcExpressions.Enabled:=False;
        DBedit6.Enabled:=False;
      end;
    2:begin
        dblcExpressions.Enabled:=True;
        DBedit6.Enabled:=False;
      end;
  end;
end;

procedure TEmployEditForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if key=#13 then begin
    if not (ActiveControl is TDBGrid) then begin
      key:=#0;
      perform(WM_NEXTDLGCTL,0,0);
    end else if (ActiveControl is TDBGrid) then begin
      with TDBGrid(ActiveControl) do
        if SelectedIndex<(FieldCount-1) then
          selectedIndex:=SelectedIndex+1
        else selectedIndex:=0;
      end;
    end;
end;

procedure TEmployEditForm.bbtnConfirmEnter(Sender: TObject);
begin
  inherited;
  if DBEdit1.Text='' then begin
    MessageDlg(Pchar(sEmpCode), mtError, [mbOK], 0);
    DBEdit1.SetFocus;
  end;
  if DBEdit2.Text='' then begin
    MessageDlg(Pchar(sEmpNull), mtError, [mbOK], 0);
    DBEdit2.SetFocus;
  end;
  if  dbcbDepartment.KeyValue=null then begin
    MessageDlg(Pchar(sDepNull), mtError, [mbOK], 0);
    dbcbDepartment.SetFocus;
  end;
end;

procedure TEmployEditForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  CanClose := DM2.DataSetApplyUpdates(DM2.tblEmploy, ModalResult = mrOK);
end;

procedure TEmployEditForm.dbcbDepartmentClick(Sender: TObject);
var
  EmpCode, aaa:string;
begin
  inherited;
  if dbcbDepartment.KeyValue<>Null then begin
    aaa:=IntTostr(dbcbDepartment.KeyValue);
    DM2.qryEmpCode.Close;
    DM2.qryEmpCode.Sql.Clear;
    DM2.qryEmpCode.Sql.Add('select * from department where DepartmentID=');
    DM2.qryEmpCode.Sql.Add(aaa);
    DM2.qryEmpCode.Open;
    if not DM2.qryEmpCode.Eof then begin
      EmpCode:=Trim(Dm2.qryEmpCode.Fields[2].AsString);
      aaa:=EmpCode;
      EmpCode:=''''+EmpCode+'%'+'''';
      DM2.qryEmpCode.Close;
      DM2.qryEmpCode.Sql.Clear;
      DM2.qryEmpCode.Sql.Add('SELECT int(Max(Mid(EmpCode,2,3))) FROM employ WHERE EmpCode Like ');
      DM2.qryEmpCode.Sql.Add(EmpCode);
      DM2.qryEmpCode.Open;
      if not DM2.qryEmpCode.Eof then begin
        EmpCode:=''+'%.'+inttostr(3-length(inttostr(Dm2.qryempcode.Fields[0].AsInteger+1)))+'s'+'';
        Dm2.tblEmployEmpCode.Value := aaa+Format(EmpCode+inttostr(Dm2.qryempcode.Fields[0].AsInteger+1),['00000'])
      end else
        Dm2.tblEmployEmpCode.Value := aaa+'001';
    end;
  end;
end;

procedure TEmployEditForm.DBLookupComboBox1Click(Sender: TObject);
begin
  inherited;
  DM2.tblEmployDuty.Value:=DBLookupComboBox1.Text;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -