📄 untframeemp.pas
字号:
unit UntframeEmp;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, DBCtrls, StdCtrls, Mask,dmPub,Untpub, ExtDlgs;
type
TFrameEmp = class(TFrame)
tblEmp: TTable;
dedtUserName: TDBEdit;
DsEmp: TDataSource;
lblUserName: TLabel;
lblDptID: TLabel;
stcEmpDpt: TStaticText;
lblName: TLabel;
dedtName: TDBEdit;
lblSex: TLabel;
lblBirthday: TLabel;
dedtBirthday: TDBEdit;
lblEdu: TLabel;
dedtEdu: TDBEdit;
lblNation: TLabel;
lblRally: TLabel;
dedtRally: TDBEdit;
lblStiuation: TLabel;
lblPolitics: TLabel;
dedtPolitics: TDBEdit;
lblHomeAddress: TLabel;
dedtHomeAddress: TDBEdit;
lblMobiPhone: TLabel;
dedtMobiPhone: TDBEdit;
lblHomePhone: TLabel;
dedtHomePhone: TDBEdit;
lblBPNum: TLabel;
dedtBPNum: TDBEdit;
lblEmp: TLabel;
dedtEmp: TDBEdit;
lblPID: TLabel;
dedtPID: TDBEdit;
lblRank: TLabel;
dedtRank: TDBEdit;
lblRankDate: TLabel;
dedtRankDate: TDBEdit;
lblEmpSDate: TLabel;
dedtEmpSDate: TDBEdit;
lblCPA: TLabel;
dedtCPA: TDBEdit;
lblEmpEDate: TLabel;
dedtEmpEDate: TDBEdit;
lblWorkDate: TLabel;
dedtWorkDate: TDBEdit;
lblRSDate: TLabel;
dedtRSDate: TDBEdit;
lblProunit: TLabel;
dedtProunit: TDBEdit;
lblLeaveDate: TLabel;
dedtLeaveDate: TDBEdit;
lblLeaveCause: TLabel;
dedtLeaveCause: TDBEdit;
lblMarriay: TLabel;
dedtMarriay: TDBEdit;
lblWriteDate: TLabel;
dedtWriteDate: TDBEdit;
lblCY: TLabel;
dedtCY: TDBEdit;
lblAward: TLabel;
dedtAward: TDBEdit;
lblDocPos: TLabel;
dedtDocPos: TDBEdit;
lblPhoto: TLabel;
DBImage1: TDBImage;
lblMemo: TLabel;
dmemMemo: TDBMemo;
tblEmpUserName: TStringField;
tblEmpDptID: TIntegerField;
tblEmpName: TStringField;
tblEmpSex: TStringField;
tblEmpBirthday: TDateTimeField;
tblEmpEdu: TStringField;
tblEmpNation: TStringField;
tblEmpRally: TStringField;
tblEmpStiuation: TStringField;
tblEmpPolitics: TStringField;
tblEmpHomeAddress: TStringField;
tblEmpMobiPhone: TStringField;
tblEmpHomePhone: TStringField;
tblEmpBPNum: TStringField;
tblEmpEmp: TStringField;
tblEmpPID: TStringField;
tblEmpRank: TStringField;
tblEmpRankDate: TDateTimeField;
tblEmpEmpSDate: TDateTimeField;
tblEmpEmpEDate: TDateTimeField;
tblEmpCPA: TStringField;
tblEmpWorkDate: TDateTimeField;
tblEmpRSDate: TDateTimeField;
tblEmpProunit: TStringField;
tblEmpLeaveDate: TDateTimeField;
tblEmpLeaveCause: TStringField;
tblEmpMarriay: TStringField;
tblEmpWriteDate: TDateTimeField;
tblEmpCY: TStringField;
tblEmpAward: TStringField;
tblEmpDocPos: TStringField;
tblEmpMemo: TStringField;
dcbxSex: TDBComboBox;
dcbxNation: TDBComboBox;
tblEmpPhoto: TBlobField;
OpenPictureDialog1: TOpenPictureDialog;
lblHint: TLabel;
Label1: TLabel;
dcbxStiuation: TDBComboBox;
tblEmptag: TIntegerField;
tblEmpUSER_ID: TIntegerField;
procedure dedtNameChange(Sender: TObject);
procedure tblEmpBirthdaySetText(Sender: TField; const Text: String);
procedure tblEmpBirthdayGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure tblEmpRankDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure tblEmpRankDateSetText(Sender: TField; const Text: String);
procedure tblEmpEmpSDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure tblEmpEmpSDateSetText(Sender: TField; const Text: String);
procedure tblEmpEmpEDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure tblEmpEmpEDateSetText(Sender: TField; const Text: String);
procedure tblEmpWorkDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure tblEmpWorkDateSetText(Sender: TField; const Text: String);
procedure tblEmpRSDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure tblEmpRSDateSetText(Sender: TField; const Text: String);
procedure tblEmpLeaveDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure tblEmpLeaveDateSetText(Sender: TField; const Text: String);
procedure tblEmpWriteDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure tblEmpWriteDateSetText(Sender: TField; const Text: String);
procedure DBImage1DblClick(Sender: TObject);
private
{ Private declarations }
procedure DateFieldGetText(Sender: TField; var Text: String);
function DateFieldSetText(Sender: TField; const Text: String):Boolean;
public
{ Public declarations }
end;
implementation
uses UntDptEmp;
{$R *.DFM}
procedure TFrameEmp.dedtNameChange(Sender: TObject);
begin
if frmDptEmp.bAdd or frmDptEmp.bEdit then
frmDptEmp.TreeView1.Selected.Text:=dedtName.Text;
end;
procedure TFrameEmp.tblEmpBirthdaySetText(Sender: TField;
const Text: String);
begin
if DateFieldSetText(Sender,Text)=False then
Abort; {转换不成功日期非法}
end;
procedure TFrameEmp.DateFieldGetText(Sender: TField; var Text: String);
var
dDate:TDate;
wYear,wMonth,wDay:Word;
aryTestYMD:Array [1..2] of Char;{测试输入掩码用临时数组}
iYMD:Integer;
begin
dDate:=Sender.AsDateTime;
if dDate<>0 then
begin
DecodeDate(dDate,wYear,wMonth,wDay);
{测试输入掩码所包含的格式.}
aryTestYMD:='年';
if StrScan(PChar(Sender.EditMask) ,aryTestYMD[1])<>nil then
iYMD:=1;
aryTestYMD:='月';
if StrScan(PChar(Sender.EditMask),aryTestYMD[1])<>nil then
iYMD:=2;
aryTestYMD:='日';
if StrScan(PChar(Sender.EditMask),aryTestYMD[1])<>nil then
iYMD:=3;
case iYMD of
1:{输入掩码为:”yyyy年”的格式.}
Text:=IntToStr(wYear)+'年';
2: {输入掩码为:”yyyy年mm月”的格式.}
Text:=IntToStr(wYear)+'年'+IntToStr(wMonth)+'月';
3: {输入掩码为:”yyyy年mm月dd日”的格式.}
Text:=IntToStr(wYear)+'年'+IntToStr(wMonth)+'月'+IntToStr(wDay)+'日';
else {默认为:”yyyy年mm月dd日”的格式.}
Text:=IntToStr(wYear)+'年'+IntToStr(wMonth)+'月'+IntToStr(wDay)+'日';
end;
end;
end;
function TFrameEmp.DateFieldSetText(Sender: TField; const Text: String):Boolean;
var
dDate:TDate;
sYear,sMonth,sDay:String;
aryTestYMD:Array [1..2] of Char;
iYMD:Integer;
begin {获得用户输入的日期}
sYear:=Copy(Text,1,4);
sMonth:=Copy(Text,7,2);
SDay:=Copy(Text,11,2);
if ((sYear=' ') and (sMonth=' ')) and (Sday=' ') then
begin
Sender.AsDateTime:=0;
DateFieldSetText:=True;
exit;
end;
{测试输入掩码所包含的格式.}
aryTestYMD:='年';
if StrScan(PChar(Sender.EditMask),aryTestYMD[1])<>nil then
iYMD:=1;
aryTestYMD:='月';
if StrScan(PChar(Sender.EditMask), aryTestYMD[1])<>nil then
iYMD:=2;
aryTestYMD:='日';
if StrScan(PChar(Sender.EditMask), aryTestYMD[1])<>nil then
iYMD:=3;
{利用Try…Except进行输入的日期转换}
try
begin
if (strtoint(syear)<=1900) or (strtoint(syear)>=2050) then
begin
Application.MessageBox(PChar(Text+'不是有效的日期!'),'错误',mb_Ok+mb_IconError);
DateFieldSetText:=False;
exit;
end;
case iYMD of
1: {输入掩码为:”yyyy年”的格式.}
begin
dDate:=StrToDate(sYear+'-01-01');{中文Windows默认的日期格式为:yyyy-mm-dd.下同}
Sender.AsDateTime:=dDate;
end;
2: {输入掩码为:”yyyy年mm月”的格式.}
begin
dDate:=StrToDate(sYear+'-'+sMonth+'-01');
Sender.AsDateTime:=dDate;
end;
3: {输入掩码为:”yyyy年mm月dd日”的格式.}
begin
dDate:=StrToDate(sYear+'-'+sMonth+'-'+sDay);
Sender.AsDateTime:=dDate;
end;
else {默认为:”yyyy年mm月dd日”的格式.}
begin
dDate:=StrToDate(sYear+'-'+sMonth+'-'+sDay);
Sender.AsDateTime:=dDate;
end;
end;
DateFieldSetText:=True;
end;
except
{日期转换出错}
begin
Application.MessageBox(PChar(Text+'不是有效的日期!'),'错误',mb_Ok+mb_IconError);
DateFieldSetText:=False;
end;
end;
end;
procedure TFrameEmp.tblEmpBirthdayGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
DateFieldGetText(Sender,Text);
end;
procedure TFrameEmp.tblEmpRankDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
DateFieldGetText(Sender,Text);
end;
procedure TFrameEmp.tblEmpRankDateSetText(Sender: TField;
const Text: String);
begin
if DateFieldSetText(Sender,Text)=False then
Abort; {转换不成功日期非法}
end;
procedure TFrameEmp.tblEmpEmpSDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
DateFieldGetText(Sender,Text);
end;
procedure TFrameEmp.tblEmpEmpSDateSetText(Sender: TField;
const Text: String);
begin
if DateFieldSetText(Sender,Text)=False then
Abort; {转换不成功日期非法}
end;
procedure TFrameEmp.tblEmpEmpEDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
DateFieldGetText(Sender,Text);
end;
procedure TFrameEmp.tblEmpEmpEDateSetText(Sender: TField;
const Text: String);
begin
if DateFieldSetText(Sender,Text)=False then
Abort; {转换不成功日期非法}
end;
procedure TFrameEmp.tblEmpWorkDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
DateFieldGetText(Sender,Text);
end;
procedure TFrameEmp.tblEmpWorkDateSetText(Sender: TField;
const Text: String);
begin
if DateFieldSetText(Sender,Text)=False then
Abort; {转换不成功日期非法}
end;
procedure TFrameEmp.tblEmpRSDateGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
DateFieldGetText(Sender,Text);
end;
procedure TFrameEmp.tblEmpRSDateSetText(Sender: TField;
const Text: String);
begin
if DateFieldSetText(Sender,Text)=False then
Abort; {转换不成功日期非法}
end;
procedure TFrameEmp.tblEmpLeaveDateGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
DateFieldGetText(Sender,Text);
end;
procedure TFrameEmp.tblEmpLeaveDateSetText(Sender: TField;
const Text: String);
begin
if DateFieldSetText(Sender,Text)=False then
Abort; {转换不成功日期非法}
end;
procedure TFrameEmp.tblEmpWriteDateGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
DateFieldGetText(Sender,Text);
end;
procedure TFrameEmp.tblEmpWriteDateSetText(Sender: TField;
const Text: String);
begin
if DateFieldSetText(Sender,Text)=False then
Abort; {转换不成功日期非法}
end;
procedure TFrameEmp.DBImage1DblClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.filename);
//Application.CreateForm(TfrmImageFind,frmImageFind);
// frmImageFind.Show;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -