📄 querymember.pas
字号:
unit queryMember;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Grids, DBGrids, ExtCtrls, DBCtrls,
dataModule, Mask,IdGlobal,changeMember,deleteMember, DB, DBTables;
type
TfrmQueryMember = class(TForm)
GroupBox1: TGroupBox;
Label5: TLabel;
Label2: TLabel;
Label1: TLabel;
Label11: TLabel;
Label9: TLabel;
Label3: TLabel;
Label6: TLabel;
Label12: TLabel;
Label15: TLabel;
eduLevel: TComboBox;
folk: TEdit;
memberName: TEdit;
gender: TComboBox;
address: TEdit;
telephone: TEdit;
btnOk: TButton;
btnClear: TButton;
profession: TComboBox;
level: TComboBox;
GroupBox2: TGroupBox;
lowbirth: TDateTimePicker;
highBirth: TDateTimePicker;
GroupBox3: TGroupBox;
lowJoin: TDateTimePicker;
highjoin: TDateTimePicker;
Label4: TLabel;
GroupBox4: TGroupBox;
DBNavigator1: TDBNavigator;
GroupBox6: TGroupBox;
asc: TRadioButton;
desc: TRadioButton;
GroupBox5: TGroupBox;
id: TRadioButton;
name: TRadioButton;
edu: TRadioButton;
join: TRadioButton;
GroupBox7: TGroupBox;
DBGrid1: TDBGrid;
GroupBox8: TGroupBox;
change: TButton;
delete: TButton;
memberId: TEdit;
sqlMember: 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 changeClick(Sender: TObject);
procedure deleteClick(Sender: TObject);
procedure btnOkClick(Sender: TObject);
private
{ Private declarations }
s:string;
function isInteger(s:string):boolean;
public
{ Public declarations }
end;
var
frmQueryMember: TfrmQueryMember;
implementation
{$R *.dfm}
procedure TfrmQueryMember.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
self.Free;
end;
procedure TfrmQueryMember.FormCreate(Sender: TObject);
begin
with sqlMember do
begin
close;
sql.clear;
sql.Add('select 会员编号,会员姓名,性别,民族,学历,职业,生日,'+
'点数,级别,电话,地址,入会时间,备注 from member ');
open;
end;
s:='select 会员编号,会员姓名,性别,民族,学历,职业,生日,'+
'点数,级别,电话,地址,入会时间,备注 from member ';
activeControl:=memberId;
lowbirth.Date:=strToDate('1800-1-1');
highbirth.Date:=now;
lowjoin.Date:=strTodate('1800-1-1');
highjoin.Date:=now;
end;
procedure TfrmQueryMember.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 sqlMember do
begin
Close;
SQL.Clear;
SQL.Add(s+'order by '+col+' asc');
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryMember.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 sqlMember do
begin
Close;
SQL.Clear;
SQL.Add(s+'order by '+col+' desc');
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryMember.idClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlMember do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 会员编号 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryMember.nameClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlMember do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 会员姓名 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryMember.eduClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlMember do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 级别 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryMember.joinClick(Sender: TObject);
var
t:string;
begin
if asc.Checked then t:='asc'
else if desc.Checked then t:='desc';
with sqlMember do
begin
Close;
SQL.Clear;
SQL.Add(s+' order by 入会时间 '+t);
try
Open;
except
ExecSQL;
end;
end;
end;
procedure TfrmQueryMember.btnClearClick(Sender: TObject);
begin
memberId.Text:='';
memberName.Text:='';
gender.ItemIndex:=0;
folk.Text:='';
profession.ItemIndex:=0;
activeControl:=memberId;
lowbirth.Date:=strToDate('1800-1-1');
highbirth.Date:=now;
lowjoin.Date:=strTodate('1800-1-1');
highjoin.Date:=now;
eduLevel.ItemIndex:=0;
level.ItemIndex:=0;
address.Text:='';
telephone.Text:='';
end;
procedure TfrmQueryMember.changeClick(Sender: TObject);
begin
frmChangeMember:=TFrmChangeMember.Create(self);
frmChangeMember.ShowModal;
end;
procedure TfrmQueryMember.deleteClick(Sender: TObject);
begin
frmDeleteMember:=TFrmdeleteMember.Create(self);
frmdeleteMember.ShowModal;
end;
procedure TfrmQueryMember.btnOkClick(Sender: TObject);
var
i:integer;
low,high:string;
begin
s:='select 会员编号,会员姓名,性别,民族,学历,职业,生日,'+
'点数,级别,电话,地址,备注 from member ';
i:=0;
{处理会员编号}
if isInteger(memberId.Text) then
begin
s:=s+'where 会员编号='+memberId.Text;
i:=i+1;
end;
{处理会员姓名}
if memberName.Text<>'' then
begin
if i=0 then
s:=s+'where 会员姓名='''+memberName.Text+''''
else
s:=s+' and 会员姓名='''+memberName.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;
{处理职业}
if profession.Text<>'' then
begin
if i=0 then
s:=s+'where 职业='''+profession.Text+''''
else
s:=s+' and 职业='''+profession.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 level.Text<>'' then
s:=s+' and 级别='''+level.Text+'''';
{处理住址}
if address.Text<>'' then
s:=s+' and 住址='''+address.Text+'''';
{处理电话}
if telephone.Text<>'' then
s:=s+' and 电话='''+telephone.Text+'''';
with sqlMember do
begin
close;
sql.Clear;
sql.Add(s);
try
open;
except
execsql;
end;
end;
end;
function TfrmQueryMember.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;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -