📄 unit17.pas
字号:
unit Unit17;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, ComCtrls, ExtCtrls, DBCtrls, DB,
DBTables,IdGlobal;
type
TForm17 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
customerid: TEdit;
customername: TEdit;
Label3: TLabel;
idname: TComboBox;
Label4: TLabel;
idcard: TEdit;
Label5: TLabel;
customerrank: TComboBox;
Label9: TLabel;
nation: TComboBox;
Label11: TLabel;
gender: TComboBox;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
asc: TRadioButton;
desc: TRadioButton;
GroupBox3: TGroupBox;
id: TRadioButton;
name: TRadioButton;
rank: TRadioButton;
GroupBox6: TGroupBox;
DBNavigator1: TDBNavigator;
GroupBox7: TGroupBox;
select: TButton;
modify: TButton;
delete: TButton;
refresh: TButton;
sqlcustomer: 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 rankClick(Sender: TObject);
procedure refreshClick(Sender: TObject);
procedure selectClick(Sender: TObject);
procedure modifyClick(Sender: TObject);
procedure deleteClick(Sender: TObject);
private
{ Private declarations }
s:string;
function isInteger(s:string):boolean;
public
{ Public declarations }
end;
var
Form17: TForm17;
implementation
uses Unit36, Unit37,unit38;
{$R *.dfm}
procedure TForm17.FormClose(Sender: TObject; var Action: TCloseAction);
begin
self.Free;
end;
procedure TForm17.FormCreate(Sender: TObject);
begin
s:='select * from customer ';
with sqlcustomer do
begin
close;
sql.Clear;
sql.Add(s);
open;
end;
activeControl:=customerId;
id.Checked:=true;
end;
procedure TForm17.ascClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='客户编号'
else if name.Checked then col:='客户姓名'
else if rank.Checked then col:='客户等级';
with sqlcustomer do
begin
Close;
SQL.Clear;
SQL.Add(s+'order by '+col+' asc');
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TForm17.descClick(Sender: TObject);
var
col:string;
begin
if id.Checked then col:='客户编号'
else if name.Checked then col:='客户姓名'
else if rank.Checked then col:='客户等级';
with sqlcustomer do
begin
Close;
SQL.Clear;
SQL.Add(s+'order by '+col+' desc');
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TForm17.idClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlcustomer do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 客户编号 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TForm17.nameClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlcustomer do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 客户姓名 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TForm17.rankClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlcustomer do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 客户等级 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TForm17.refreshClick(Sender: TObject);
begin
customerId.Text:='';
customerName.Text:='';
gender.ItemIndex:=0;
idname.ItemIndex:=0;
idcard.text:='';
activeControl:=customerId;
nation.ItemIndex:=0;
customerrank.ItemIndex:=0;
{让数据控件dbGrid1同步显示}
with sqlcustomer do
begin
close;
sql.Clear;
sql.Add('select * from customer');
open;
end;
end;
procedure TForm17.selectClick(Sender: TObject);
var
i:integer;
begin
s:='select * from customer ';
i:=0;
{处理客户编号}
if isInteger(customerId.Text) then
begin
s:=s+'where 客户编号='+customerId.Text;
i:=i+1;
end;
{处理客户姓名}
if customerName.Text<>'' then
begin
if i=0 then
s:=s+'where 客户姓名='''+customerName.Text+''''
else
s:=s+' and 客户姓名='''+customerName.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 idname.Text<>'' then
begin
if i=0 then
s:=s+'where 证件名称='''+idname.Text+''''
else
s:=s+' and 证件名称='''+idname.Text+'''';
i:=i+1;
end;
{处理证件号码}
if idcard.Text<>'' then
begin
if i=0 then
s:=s+'where 证件号码='''+idcard.Text+''''
else
s:=s+' and 证件号码='''+idcard.Text+'''';
i:=i+1;
end;
{处理国籍}
if nation.Text<>'' then
begin
if i=0 then
s:=s+'where 国籍='''+nation.Text+''''
else
s:=s+' and 国籍='''+nation.Text+'''';
i:=i+1;
end;
{处理客户等级}
if customerrank.Text<>'' then
begin
if i=0 then
s:=s+'where 客户等级='''+customerrank.Text+''''
else
s:=s+' and 客户等级='''+customerrank.Text+'''';
i:=i+1;
end;
with sqlcustomer do
begin
close;
sql.Clear;
sql.Add(s);
try
open;
except
execsql;
end;
end;
end;
function Tform17.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 TForm17.modifyClick(Sender: TObject);
begin
form36:=TForm36.Create(self);
form36.ShowModal;
end;
procedure TForm17.deleteClick(Sender: TObject);
begin
form37:=TForm37.create(self);
form37.ShowModal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -