📄 registeremployee.pas
字号:
unit registerEmployee;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DB, DBTables, Grids, DBGrids, ExtCtrls,
IdGlobal;
type
TfrmRegisterEmployee = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
employeeId: TEdit;
employeeName: TEdit;
gender: TComboBox;
folk: TEdit;
birthday: TDateTimePicker;
telephone: TEdit;
joinTime: TDateTimePicker;
address: TEdit;
Label10: TLabel;
note: TEdit;
btnCancel: TButton;
btnOk: TButton;
eduLevel: TComboBox;
Panel1: TPanel;
DBGrid1: TDBGrid;
GroupBox3: TGroupBox;
asc: TRadioButton;
desc: TRadioButton;
GroupBox2: TGroupBox;
id: TRadioButton;
name: TRadioButton;
level: TRadioButton;
join: TRadioButton;
Query1: TQuery;
DataSource1: TDataSource;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Table1: TTable;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ascClick(Sender: TObject);
procedure descClick(Sender: TObject);
procedure idClick(Sender: TObject);
procedure nameClick(Sender: TObject);
procedure levelClick(Sender: TObject);
procedure joinClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure btnOkClick(Sender: TObject);
private
{ Private declarations }
function isTelephone(s:string):boolean;
public
{ Public declarations }
end;
var
frmRegisterEmployee: TfrmRegisterEmployee;
implementation
{$R *.dfm}
procedure TfrmRegisterEmployee.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
self.Free;
end;
procedure TfrmRegisterEmployee.ascClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='员工编号'
else if name.Checked then col:='员工姓名'
else if level.Checked then col:='学历'
else if join.Checked then col:='加盟时间';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from employee order by '+col+' asc');
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterEmployee.descClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='员工编号'
else if name.Checked then col:='员工姓名'
else if level.Checked then col:='学历'
else if join.Checked then col:='加盟时间';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from employee order by '+col+' desc');
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterEmployee.idClick(Sender: TObject);
var
s:string;
begin
if asc.Checked then s:='asc'
else if desc.Checked then s:='desc';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from employee order by 员工编号 '+s);
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterEmployee.nameClick(Sender: TObject);
var
s:string;
begin
if asc.Checked then s:='asc'
else if desc.Checked then s:='desc';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from employee order by 员工姓名 '+s);
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterEmployee.levelClick(Sender: TObject);
var
s:string;
begin
if asc.Checked then s:='asc'
else if desc.Checked then s:='desc';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from employee order by 学历 '+s);
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterEmployee.joinClick(Sender: TObject);
var
s:string;
begin
if asc.Checked then s:='asc'
else if desc.Checked then s:='desc';
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from employee order by 加盟时间 '+s);
try
query1.Open;
except
query1.ExecSQL;
end;
end;
procedure TfrmRegisterEmployee.FormCreate(Sender: TObject);
var
maxNo,tmp:integer;
begin
birthday.Date:=strToDate('1980-3-6');
joinTime.Date:=now;
{获取新添加会员的编号----------<会员表>}
with table1 do
begin
open;
first;
maxNo:=fieldByName('员工编号').AsInteger;
while not eof do
begin
tmp:=fieldByName('员工编号').AsInteger;
if maxNo<tmp then maxNo:=tmp;
next;
end;
close;
end;
employeeId.Text:=intToStr(maxNo+1);
activeControl:=employeeName;
end;
procedure TfrmRegisterEmployee.btnCancelClick(Sender: TObject);
var
maxNo,tmp:integer;
begin
{获取新添加会员的编号----------<会员表>}
with table1 do
begin
open;
first;
maxNo:=fieldByName('员工编号').AsInteger;
while not eof do
begin
tmp:=fieldByName('员工编号').AsInteger;
if maxNo<tmp then maxNo:=tmp;
next;
end;
close;
end;
employeeId.Text:=intToStr(maxNo+1);
activeControl:=employeeName;
employeeName.Text:='';
folk.Text:='';
gender.ItemIndex:=0;
birthday.Date:=now;
eduLevel.ItemIndex:=0;
telephone.Text:='';
address.Text:='';
joinTime.DateTime:=now;
note.Text:='';
end;
procedure TfrmRegisterEmployee.btnOkClick(Sender: TObject);
var
maxNo,tmp:integer;
begin
{添加一个新员工----------<员工表>}
try
{检查"员工姓名"}
if (employeeName.Text='') or (length(employeeName.Text)>8) then
begin
messageDlg('"员工姓名"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=employeeName;
abort;
end;
{检查"性别"}
if gender.Text='' then
begin
messageDlg('请选择员工"性别"!',mtWarning,[mbOk],0);
activeControl:=gender;
abort;
end;
{检查"学历"}
if eduLevel.Text='' then
begin
messageDlg('请选择员工"学历"!',mtWarning,[mbOk],0);
activeControl:=eduLevel;
abort;
end;
{检查"生日"与"加盟时间"}
if birthday.Date>=joinTime.Date then
begin
messageDlg('"加盟时间"或"生日"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=birthDay;
abort;
end;
{检查"电话"}
if (length(telephone.Text)>12)or(isTelephone(telephone.Text)=false) then
begin
messageDlg('"联系电话"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=telephone;
abort;
end;
{检查"民族"}
if(length(folk.Text)>6) then
begin
messageDlg('"民族"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=folk;
abort;
end;
{检查"住址"}
if(length(address.Text)>20)or(address.Text='') then
begin
messageDlg('"住址"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=address;
abort;
end;
{检查"备注"}
if length(note.Text)>60 then
begin
messageDlg('"备注"输入过长,请重新输入!',mtWarning,[mbOk],0);
activeControl:=note;
abort;
end;
{将员工数据填入<员工表>}
with table1 do
begin
open;
append;
fieldByName('员工编号').AsInteger:=strToInt(employeeId.Text);
fieldByName('员工姓名').AsString:=employeeName.Text;
fieldByName('性别').AsString:=gender.Text;
fieldByName('民族').AsString:=folk.Text;
fieldByName('学历').AsString:=eduLevel.Text;
fieldByName('生日').AsDateTime:=birthday.Date;
fieldByName('电话').AsString:=telephone.Text;
fieldByName('住址').AsString:=address.Text;
fieldByName('加盟时间').AsDateTime:=joinTime.Date;
fieldByName('备注').AsString:=note.Text;
post;
close;
end;
except
on ex:EConvertError do
begin
messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
end;
end; {end of try}
{让数据控件dbGrid1同步显示}
with query1 do
begin
close;
sql.Clear;
sql.Add('select * from employee');
open;
end;
{清屏准备输入下一位新员工}
btnCancelClick(Sender);//调用清屏按钮的处理操作
messageDlg('新员工添加成功!',mtWarning,[mbOk],0);
activeControl:=employeeName;
end;
function TfrmRegisterEmployee.isTelephone(s: string): boolean;
var
i:integer;
begin
if length(s)=0 then
begin
result:=false;
exit;
end;
i:=1;
while i<=length(s) do
begin
if isNumeric(s[i])=false then
begin
result:=false;
exit;
end;
i:=i+1;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -