📄 queryemployee.pas
字号:
unit queryEmployee;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, ComCtrls, DB,
DBTables,IdGlobal;
type
TfrmQueryEmployee = class(TForm)
GroupBox1: TGroupBox;
Label5: TLabel;
Label2: TLabel;
Label1: TLabel;
Label11: TLabel;
Label9: TLabel;
Label3: TLabel;
Label12: TLabel;
Label4: TLabel;
eduLevel: TComboBox;
folk: TEdit;
employeeName: TEdit;
gender: TComboBox;
address: TEdit;
telephone: TEdit;
btnOk: TButton;
btnClear: TButton;
GroupBox2: TGroupBox;
lowbirth: TDateTimePicker;
highBirth: TDateTimePicker;
GroupBox3: TGroupBox;
lowJoin: TDateTimePicker;
highjoin: TDateTimePicker;
employeeId: TEdit;
GroupBox4: TGroupBox;
DBNavigator1: TDBNavigator;
GroupBox8: TGroupBox;
change: TButton;
delete: TButton;
GroupBox6: TGroupBox;
asc: TRadioButton;
desc: TRadioButton;
GroupBox5: TGroupBox;
id: TRadioButton;
name: TRadioButton;
edu: TRadioButton;
join: TRadioButton;
GroupBox7: TGroupBox;
DBGrid1: TDBGrid;
sqlEmployee: TQuery;
DataSource1: TDataSource;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure ascClick(Sender: TObject);
procedure descClick(Sender: TObject);
procedure idClick(Sender: TObject);
procedure nameClick(Sender: TObject);
procedure eduClick(Sender: TObject);
procedure joinClick(Sender: TObject);
procedure btnClearClick(Sender: TObject);
procedure btnOkClick(Sender: TObject);
procedure changeClick(Sender: TObject);
procedure deleteClick(Sender: TObject);
private
{ Private declarations }
s:string;
function isInteger(s:string):boolean;
public
{ Public declarations }
end;
var
frmQueryEmployee: TfrmQueryEmployee;
implementation
uses changeEmployee, deleteEmployee;
{$R *.dfm}
procedure TfrmQueryEmployee.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
self.Free;
end;
procedure TfrmQueryEmployee.FormCreate(Sender: TObject);
begin
s:='select * from employee ';
with sqlEmployee do
begin
close;
sql.Clear;
sql.Add(s);
open;
end;
activeControl:=employeeId;
lowbirth.Date:=strToDate('1800-1-1');
highbirth.Date:=now;
lowjoin.Date:=strTodate('1800-1-1');
highjoin.Date:=now;
end;
procedure TfrmQueryEmployee.ascClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='员工编号'
else if name.Checked then col:='员工姓名'
else if edu.Checked then col:='学历'
else if join.Checked then col:='加盟时间';
with sqlEmployee do
begin
Close;
SQL.Clear;
SQL.Add(s+'order by '+col+' asc');
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryEmployee.descClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='员工编号'
else if name.Checked then col:='员工姓名'
else if edu.Checked then col:='学历'
else if join.Checked then col:='加盟时间';
with sqlEmployee do
begin
Close;
SQL.Clear;
SQL.Add(s+'order by '+col+' desc');
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryEmployee.idClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlEmployee do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 员工编号 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryEmployee.nameClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlEmployee do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 员工姓名 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryEmployee.eduClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlEmployee do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 学历 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryEmployee.joinClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlEmployee do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 加盟时间 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryEmployee.btnClearClick(Sender: TObject);
begin
employeeId.Text:='';
employeeName.Text:='';
gender.ItemIndex:=0;
folk.Text:='';
activeControl:=employeeId;
lowbirth.Date:=strToDate('1800-1-1');
highbirth.Date:=now;
lowjoin.Date:=strTodate('1800-1-1');
highjoin.Date:=now;
eduLevel.ItemIndex:=0;
address.Text:='';
telephone.Text:='';
end;
procedure TfrmQueryEmployee.btnOkClick(Sender: TObject);
var
i:integer;
low,high:string;
begin
s:='select * from employee ';
i:=0;
{处理员工编号}
if isInteger(employeeId.Text) then
begin
s:=s+'where 员工编号='+employeeId.Text;
i:=i+1;
end;
{处理员工姓名}
if employeeName.Text<>'' then
begin
if i=0 then
s:=s+'where 员工姓名='''+employeeName.Text+''''
else
s:=s+' and 员工姓名='''+employeeName.Text+'''';
i:=i+1;
end;
{处理性别}
if gender.Text<>'' then
begin
if i=0 then
s:=s+'where 性别='''+gender.Text+''''
else
s:=s+' and 性别='''+gender.Text+'''';
i:=i+1;
end;
{处理民族}
if folk.Text<>'' then
begin
if i=0 then
s:=s+'where 民族='''+folk.Text+''''
else
s:=s+' and 民族='''+folk.Text+'''';
i:=i+1;
end;
{处理生日}
low:=formatDateTime('mm''/''dd''/''yyyy',lowbirth.Date);
high:=formatDateTime('mm''/''dd''/''yyyy',highbirth.Date);
if i=0 then
s:=s+'where '
else
s:=s+' and ';
s:=s+'生日<='''+high+''' and 生日>='''+low+'''';
{处理加盟时间}
low:=formatDateTime('mm''/''dd''/''yyyy',lowjoin.Date);
high:=formatDateTime('mm''/''dd''/''yyyy',highjoin.Date);
s:=s+' and '+'加盟时间<='''+high+''' and 加盟时间>='''+low+'''';
{处理学历}
if eduLevel.Text<>'' then
s:=s+' and 学历='''+eduLevel.Text+'''';
{处理住址}
if address.Text<>'' then
s:=s+' and 住址='''+address.Text+'''';
{处理电话}
if telephone.Text<>'' then
s:=s+' and 电话='''+telephone.Text+'''';
with sqlEmployee do
begin
close;
sql.Clear;
sql.Add(s);
try
open;
except
execsql;
end;
end;
end;
function TfrmQueryEmployee.isInteger(s: string): boolean;
var
i:integer;
begin
i:=1;
if length(s)=0 then
begin
result:=false;
exit;
end;
while i<=length(s) do
begin
if (isNumeric(s[i])=false) then
begin
result:=false;
exit;
end;
i:=i+1;
end;
result:=true;
end;
procedure TfrmQueryEmployee.changeClick(Sender: TObject);
begin
frmChangeEmployee:=TFrmChangeEmployee.Create(self);
frmChangeEmployee.ShowModal;
end;
procedure TfrmQueryEmployee.deleteClick(Sender: TObject);
begin
frmDeleteEmployee:=TFrmDeleteEmployee.create(self);
frmDeleteEmployee.ShowModal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -