📄 unitemployee.pas
字号:
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 + -