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

📄 queryuser.pas

📁 住宿餐饮 - 订餐管理系统,DelPhi写的。适合酒店
💻 PAS
字号:
unit QueryUser;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBTables, DB, StdCtrls, ComCtrls, Grids, DBGrids, ExtCtrls,
  DBCtrls, IdGlobal;

type
  TfrmQueryUser = class(TForm)
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    Label14: TLabel;
    Label15: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    UserID: TEdit;
    UserName: TEdit;
    gender: TComboBox;
    btnQuery: TButton;
    btnClear: TButton;
    tel: TEdit;
    Query1: TQuery;
    DataSource1: TDataSource;
    level: TComboBox;
    GroupBox3: TGroupBox;
    lowJoin: TDateTimePicker;
    highJoin: TDateTimePicker;
    GroupBox2: TGroupBox;
    lowBirthday: TDateTimePicker;
    highBirthday: TDateTimePicker;
    Label1: TLabel;
    Label3: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    GroupBox6: TGroupBox;
    DBNavigator1: TDBNavigator;
    GroupBox4: TGroupBox;
    asc: TRadioButton;
    desc: TRadioButton;
    GroupBox5: TGroupBox;
    id: TRadioButton;
    name: TRadioButton;
    edu: TRadioButton;
    join: TRadioButton;
    procedure btnQueryClick(Sender: TObject);
    procedure btnClearClick(Sender: TObject);
    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 FormClose(Sender: TObject; var Action: TCloseAction);

  private
    { Private declarations }
    sql: string;
  public
    { Public declarations }
    function isInteger(s:string):boolean;
  end;

var
  frmQueryUser: TfrmQueryUser;

implementation

{$R *.dfm}
function TfrmQueryUser.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 TfrmQueryUser.FormCreate(Sender: TObject);
begin
    //显示所有纪录
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from UserInfo');
    try
        Query1.Open;
    except

    end;

    //设置输入焦点
    activeControl := UserId;

    //清空所有输入
    UserId.Text := '';
    UserName.Text := '';
    gender.ItemIndex := 0;
    lowBirthday.Date := strToDate('1800-1-1');
    highBirthday.Date := now;
    lowJoin.Date := strToDate('1800-1-1');
    highJoin.date := now;
    level.ItemIndex := 0;
    tel.Text := '';
end;

procedure TfrmQueryUser.btnQueryClick(Sender: TObject);
var
    flag: boolean;
    low, high: string;
begin
    //根据输入的内容查询
    sql := 'select * from UserInfo ';

    flag := false;
    if isInteger(UserID.Text)  then
    begin
        flag := true;
        sql := sql + 'where 用户编号='+UserID.Text;
    end;

    //
    if UserName.Text <> '' then
    begin
        if flag then
            sql := sql + ' and 姓名=''' + UserName.Text+''''
        else begin;
            sql := sql + ' where 姓名=''' + UserName.Text+'''';
            flag := true;
        end;
    end;

    //
    if Gender.Text <> '' then
    begin
        if flag then
            sql := sql + ' and 性别=''' + Gender.Text+''''
        else begin;
            sql := sql + ' where 性别=''' + Gender.Text+'''';
            flag := true;
        end;
    end;

    //
   {处理生日}
   low:=formatDateTime('mm''/''dd''/''yyyy',lowbirthday.Date);
   high:=formatDateTime('mm''/''dd''/''yyyy',highbirthday.Date);
   if flag then
      sql:=sql+'and '
   else
      sql:=sql+' where ';
   sql:=sql+'生日<='''+high+''' and 生日>='''+low+'''';

   {处理注册时间}
   low:=formatDateTime('mm''/''dd''/''yyyy',lowjoin.Date);
   high:=formatDateTime('mm''/''dd''/''yyyy',highjoin.Date);
   sql:=sql+' and '+'注册时间<='''+high+''' and 注册时间>='''+low+'''';

   //
    if level.Text <> '' then
        sql := sql + ' and 级别 = ''' + Level.Text+'''';
    if tel.Text<> '' then
        sql := sql + ' and 电话 = ''' + Level.Text+'''';

    //根据字符串sql进行查询
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add(sql);
    try
        Query1.Open;
    except
        Query1.ExecSQL();
    end;
end;

procedure TfrmQueryUser.btnClearClick(Sender: TObject);
begin
    UserId.Text := '';
    UserName.Text := '';
    gender.ItemIndex := 0;
    lowBirthday.Date := strToDate('1800-1-1');
    highBirthday.Date := now;
    lowJoin.Date := strToDate('1800-1-1');
    highJoin.date := now;
    level.ItemIndex := 0;
    tel.Text := '';
end;



procedure TfrmQueryUser.ascClick(Sender: TObject);
var
    context : string;
begin
    if( id.Checked = true )
        then context := '用户编号'
    else if ( name.Checked = true )
        then context := '姓名'
    else if ( join.Checked )
        then context := '注册时间'
    else if ( edu.checked )
        then context := '级别';

    //改变查询语句
    Query1.close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from UserInfo order by '+context+' asc');

    //重新查询
    try
        Query1.Open;
    except
        Query1.ExecSQL;
    end;

end;

procedure TfrmQueryUser.descClick(Sender: TObject);
var
    context : string;
begin
    if( id.Checked = true )
        then context := '用户编号'
    else if ( name.Checked = true )
        then context := '姓名'
    else if ( join.Checked )
        then context := '注册时间'
    else if ( edu.checked )
        then context := '级别';

    //改变查询语句
    Query1.close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from UserInfo order by '+context+' desc');

    //重新查询
    try
        Query1.Open;
    except
        Query1.ExecSQL;
    end;
end;

procedure TfrmQueryUser.idClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( asc.Checked )
        then
        sorttype := 'asc'
    else
        sorttype := 'desc';

    //更新表格

    //改变查询语句
    Query1.close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from UserInfo order by 用户编号 ' + sorttype);

    //重新查询
    try
        Query1.Open;
    except
        Query1.ExecSQL;
    end;
end;

procedure TfrmQueryUser.nameClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( asc.Checked )
        then
        sorttype := 'asc'
    else
        sorttype := 'desc';

    //更新表格

    //改变查询语句
    Query1.close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from UserInfo order by 姓名 ' + sorttype);

    //重新查询
    try
        Query1.Open;
    except
        Query1.ExecSQL;
    end;
end;

procedure TfrmQueryUser.eduClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( asc.Checked )
        then
        sorttype := 'asc'
    else
        sorttype := 'desc';

    //更新表格

    //改变查询语句
    Query1.close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from UserInfo order by 级别 ' + sorttype);

    //重新查询
    try
        Query1.Open;
    except
        Query1.ExecSQL;
    end;
end;

procedure TfrmQueryUser.joinClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( asc.Checked )
        then
        sorttype := 'asc'
    else
        sorttype := 'desc';

    //更新表格

    //改变查询语句
    Query1.close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from UserInfo order by 注册时间 ' + sorttype);

    //重新查询
    try
        Query1.Open;
    except
        Query1.ExecSQL;
    end;
end;

procedure TfrmQueryUser.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    Query1.Close();
    self.Free;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -