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

📄 unitemployee.pas

📁 一个不错的系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UnitEmployee;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, DBCtrls, Grids, DBGrids, Mask, ADODB,
  ToolWin, ComCtrls, ImgList, DB, Buttons, Math;

type
  TFrmEmployee = class(TForm)
    ScrollBox1: TScrollBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label20: TLabel;
    Label10: TLabel;
    Label9: TLabel;
    Label18: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    DBEdit2: TDBEdit;
    DBComboBox1: TDBComboBox;
    DBEdit3: TDBEdit;
    DBComboBox4: TDBComboBox;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBComboBox2: TDBComboBox;
    DBComboBox3: TDBComboBox;
    DBComboBox5: TDBComboBox;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    DBEdit13: TDBEdit;
    DBMemo1: TDBMemo;
    DBEdit14: TDBEdit;
    Label1: TLabel;
    Label22: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    DBEdit17: TDBEdit;
    DBComboBox6: TDBComboBox;
    DBEdit18: TDBEdit;
    Label33: TLabel;
    DBNavigator1: TDBNavigator;
    ToolBar1: TToolBar;
    ToolButton2: TToolButton;
    DBEdit1: TDBEdit;
    DBNavigator2: TDBNavigator;
    ToolButton3: TToolButton;
    Label13: TLabel;
    DBComboBox8: TDBComboBox;
    Label17: TLabel;
    Label19: TLabel;
    Label21: TLabel;
    Label23: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    DBComboBox9: TDBComboBox;
    DBComboBox10: TDBComboBox;
    DBEdit20: TDBEdit;
    DBEdit21: TDBEdit;
    DBComboBox7: TDBComboBox;
    Label16: TLabel;
    DBEdit22: TDBEdit;
    DBComboBox11: TDBComboBox;
    DBComboBox12: TDBComboBox;
    Label50: TLabel;
    Edit2: TEdit;
    SpeedButton1: TSpeedButton;
    Label54: TLabel;
    Label38: TLabel;
    DBComboBox13: TDBComboBox;
    DBComboBox16: TDBComboBox;
    DBComboBox17: TDBComboBox;
    Label39: TLabel;
    DBEdit4: TDBEdit;
    DBEdit7: TDBEdit;
    DBComboBox18: TDBComboBox;
    DBEdit8: TDBEdit;
    DBComboBox19: TDBComboBox;
    DBEdit9: TDBEdit;
    DBEdit12: TDBEdit;
    DBComboBox20: TDBComboBox;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    DBComboBox21: TDBComboBox;
    DBEdit19: TDBEdit;
    DBEdit23: TDBEdit;
    DBComboBox22: TDBComboBox;
    DBEdit24: TDBEdit;
    Label27: TLabel;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label30: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    Label43: TLabel;
    Label44: TLabel;
    DBEdit25: TDBEdit;
    DBEdit26: TDBEdit;
    DBComboBox23: TDBComboBox;
    DBComboBox24: TDBComboBox;
    DBEdit27: TDBEdit;
    DBComboBox25: TDBComboBox;
    DBComboBox26: TDBComboBox;
    DBComboBox27: TDBComboBox;
    Label45: TLabel;
    DBComboBox28: TDBComboBox;
    DBEdit28: TDBEdit;
    DBEdit29: TDBEdit;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure DBComboBox3Enter(Sender: TObject);
    procedure DBComboBox4Enter(Sender: TObject);
    procedure DBComboBox5Enter(Sender: TObject);
    procedure DBComboBox6Enter(Sender: TObject);
    procedure DBEdit1Exit(Sender: TObject);
    procedure DBEdit6Exit(Sender: TObject);
    procedure DBComboBox9Enter(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure DBEdit18Exit(Sender: TObject);
    procedure DBEdit17Exit(Sender: TObject);
    procedure DBComboBox2Change(Sender: TObject);
    procedure DBEdit16Exit(Sender: TObject);
    procedure DBComboBox14Enter(Sender: TObject);
    procedure DBComboBox15Enter(Sender: TObject);
    procedure DBComboBox16Enter(Sender: TObject);
    procedure DBComboBox18Enter(Sender: TObject);
    procedure DBEdit21Exit(Sender: TObject);
    procedure DBEdit20Exit(Sender: TObject);
    procedure DBEdit6KeyPress(Sender: TObject; var Key: Char);
    procedure DBComboBox10Change(Sender: TObject);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
    procedure DBComboBox1Change(Sender: TObject);
    procedure DBNavigator2Click(Sender: TObject; Button: TNavigateBtn);
    procedure DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    procedure DBMemo1Enter(Sender: TObject);
    procedure DBMemo1Exit(Sender: TObject);
    procedure DBEdit14Exit(Sender: TObject);
  private
    { Private declarations }
    procedure GetItemList(Sender: TObject;FieldName:String);
    function CheckIDCard(IDCard:String):Boolean;
    procedure RaiseError;
    function UpdateIDCard(OldIDCard:String):String;
  public
    { Public declarations }
  end;

var
  FrmEmployee: TFrmEmployee;

implementation

uses UnitDatabase, UnitDialog;

{$R *.dfm}

procedure TFrmEmployee.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=13 then Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TFrmEmployee.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  DMMain.adotblEmployee.Active:=false;
  Action:=caFree;
end;

procedure TFrmEmployee.FormCreate(Sender: TObject);
begin
  DMMain.adotblEmployee.Active:=true;
  DBEdit17.Field.EditMask:='9999-99-99;1; ';
  DBEdit18.Field.EditMask:='9999-99-99;1; ';
  DBEdit28.Field.EditMask:='999999;1; ';
  DBEdit29.Field.EditMask:='999999;1; ';
  DBEdit6.Field.EditMask:='99999999999999999a;1; ';
  DMMain.adotblEmployee.Append;
end;

procedure TFrmEmployee.DBComboBox3Enter(Sender: TObject);
begin
  GetItemList(Sender,'MFolk');
end;

procedure TFrmEmployee.DBComboBox4Enter(Sender: TObject);
begin
  GetItemList(Sender,'MProvince');
end;

procedure TFrmEmployee.DBComboBox5Enter(Sender: TObject);
begin
  GetItemList(Sender,'MCity');
end;

procedure TFrmEmployee.DBComboBox6Enter(Sender: TObject);
begin
  GetItemList(Sender,'MDuty');
end;

procedure TFrmEmployee.DBEdit1Exit(Sender: TObject);
var
  TmpStr:String;
begin
  DBEdit1.Text:=Trim(DBEdit1.Text);
  if DBEdit1.Text='' then begin
    DMMain.adotblEmployee.Cancel;
  end else begin
    if Length(DBEdit1.Text)<>8 then begin
      MessageBox(Handle,'请输入8位的工号。           ','系统警告',48);
      DBEdit1.SetFocus;
    end else begin
      DMMain.ADOQRS1.Close;
      DMMain.ADOQRS1.SQL.Text:='select MTagNO from Employee where MTagNO='''+DBEdit1.Text+'''';
      DMMain.ADOQRS1.Open;
      TmpStr:=DBEdit1.Text;
      DMMain.adotblEmployee.Cancel;
      if not DMMain.ADOQRS1.Eof then begin
        DMMain.adotblEmployee.Locate('MTagNO',TmpStr,[loCaseInsensitive]);
        DMMain.adotblEmployee.Edit;
        DBEdit6Exit(Sender);
      end else begin
        DMMain.adotblEmployee.Append;
        DMMain.adotblEmployee.FieldByName('MTagNO').AsString:=TmpStr;
      end;
    end;
  end;
end;

procedure TFrmEmployee.DBEdit6Exit(Sender: TObject);
var
  FNewIDCard:String;
  Y1,M1,D1,Y2,M2,D2:Word;
begin
  // 身份证号码的合法性检验
  FNewIDCard:=UpperCase(Trim(DBEdit6.Text));
  if FNewIDCard<>'' then begin
    if (Length(FNewIDCard)=15) or (Length(FNewIDCard)=18) then begin
      if Length(FNewIDCard)=15 then FNewIDCard:=UpdateIDCard(FNewIDCard);
      if not CheckIDCard(FNewIDCard) then RaiseError;
      try
        // 检验日期的合法性及计算离退休的年月
        Y2:=StrToInt(Copy(FNewIDCard,7,4));
        M2:=StrToInt(Copy(FNewIDCard,11,2));
        D2:=StrToInt(Copy(FNewIDCard,13,2));
        DBEdit3.Text:=DateToStr(EncodeDate(Y2,M2,D2));
        if (Trim(DBEdit3.Text)<>'') and (DBComboBox1.ItemIndex>=0) then begin
          DecodeDate(Date,Y1,M1,D1);
          D1:=(Y2+60-DBComboBox1.ItemIndex*10-Y1)*12+M2-M1;
          Edit2.Text:=IntToStr(D1 div 12)+'年'+IntToStr(D1 mod 12)+'月';
        end else begin
          Edit2.Text:='';
        end;
      except
        RaiseError;
      end;
    end else begin
      RaiseError;
    end;
  end;
  if (DMMain.adotblEmployee.State=dsEdit) or (DMMain.adotblEmployee.State=dsInsert) then
    DMMain.adotblEmployee.FieldByName('MIDCardNO').AsString:=FNewIDCard;

⌨️ 快捷键说明

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