📄 unit6.pas
字号:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ComCtrls, ExtCtrls, DBCtrls, DBTables,
DB,IdGlobal,QControls;
type
TForm6 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Label10: TLabel;
employeeid: TEdit;
employeename: TEdit;
idcard: TEdit;
gender: TComboBox;
married: TComboBox;
politic: TComboBox;
edu: TComboBox;
employeerank: TComboBox;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
asc: TRadioButton;
desc: TRadioButton;
id: TRadioButton;
name: TRadioButton;
rank: TRadioButton;
date: TRadioButton;
Label4: TLabel;
jointime: TDateTimePicker;
Label8: TLabel;
Label11: TLabel;
workgroup: TComboBox;
insert: TButton;
refresh: TButton;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
birthday: TDateTimePicker;
DataSource1: TDataSource;
Query1: TQuery;
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 rankClick(Sender: TObject);
procedure dateClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure insertClick(Sender: TObject);
procedure refreshClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure Tform6.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
self.Free;
end;
procedure Tform6.ascClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='员工编号'
else if name.Checked then col:='员工姓名'
else if rank.Checked then col:='员工等级'
else if date.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 Tform6.descClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='员工编号'
else if name.Checked then col:='员工姓名'
else if rank.Checked then col:='员工等级'
else if date.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 Tform6.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 Tform6.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 Tform6.rankClick(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 Tform6.dateClick(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 Tform6.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;
id.Checked:=true;
end;
procedure Tform6.refreshClick(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:='';
idcard.Text:='';
gender.ItemIndex:=0;
married.ItemIndex:=0;
birthday.Date:=now;
edu.ItemIndex:=0;
employeerank.ItemIndex:=0;
workgroup.ItemIndex:=0;
joinTime.DateTime:=now;
end;
procedure Tform6.insertClick(Sender: TObject);
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 edu.Text='' then
begin
messageDlg('请选择员工"学历"!',mtWarning,[mbOk],0);
activeControl:=edu;
abort;
end;
{检查"生日"与"加盟时间"}
if birthday.Date>=joinTime.Date then
begin
messageDlg('"加盟时间"或"生日"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=birthDay;
abort;
end;
{检查"身份证"}
if idcard.text='' then
begin
messageDlg('"身份证号"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=idcard;
abort;
end;
{检查"员工等级"}
if employeerank.Text='' then
begin
messageDlg('"员工等级"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=employeerank;
abort;
end;
{检查"工作部门"}
if workgroup.text='' then
begin
messageDlg('"工作部门"输入错误,请重新输入!',mtWarning,[mbOk],0);
activeControl:=workgroup;
abort;
end;
{将员工数据填入<员工表>}
with table1 do
begin
open;
insert;
fieldByName('员工编号').AsInteger:=strToInt(employeeId.Text);
fieldByName('员工姓名').AsString:=employeeName.Text;
fieldByName('性别').AsString:=gender.Text;
fieldByName('政治面貌').AsString:=politic.Text;
fieldByName('学历').AsString:=edu.Text;
fieldByName('生日').AsDateTime:=strtodate(DatetoStr(birthday.date));
fieldByName('身份证号').AsString:=idcard.Text;
fieldByName('婚姻状况').AsString:=married.Text;
fieldByName('聘任日期').AsDateTime:=strtodate(DatetoStr(joinTime.date));
fieldByName('员工等级').AsString:=employeerank.Text;
fieldByName('工作部门').AsString:=workgroup.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;
{清屏准备输入下一位新员工}
refreshClick(Sender);//调用清屏按钮的处理操作
messageDlg('新员工添加成功!',mtWarning,[mbOk],0);
activeControl:=employeeName;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -