⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 querymember.pas

📁 餐饮管理源代码 使用BDE Administrator在本地机器上添加一个Paradox数据库别名命名为WorkData
💻 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 + -