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

📄 userinfofrm.~pas

📁 餐饮订餐管理系统
💻 ~PAS
字号:
unit UserInfoFrm;

interface

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


type
  TUserInfo = class(TForm)
    DBGrid1: TDBGrid;
    Query1: TQuery;
    DataSource1: TDataSource;
    Table1: TTable;
    GroupBox1: TGroupBox;
    SortAsc: TRadioButton;
    SortDesc: TRadioButton;
    GroupBox2: TGroupBox;
    id: TRadioButton;
    name: TRadioButton;
    enrolltime: TRadioButton;
    level: TRadioButton;
    GroupBox3: TGroupBox;
    btnAdd: TButton;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    UserID: TEdit;
    UserName: TEdit;
    birthday: TDateTimePicker;
    gender: TComboBox;
    btnModify: TButton;
    Label1: TLabel;
    CardNum: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label13: TLabel;
    joinTime: TDateTimePicker;
    arrearage: TEdit;
    btnDelete: TButton;
    btnClear: TButton;
    Label6: TLabel;
    Label10: TLabel;
    tel: TEdit;
    address: TEdit;
    Label9: TLabel;
    note: TEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure SortAscClick(Sender: TObject);
    procedure SortDescClick(Sender: TObject);
    procedure idClick(Sender: TObject);
    procedure nameClick(Sender: TObject);
    procedure enrolltimeClick(Sender: TObject);
    procedure levelClick(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure btnClearClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure btnModifyClick(Sender: TObject);
  private
    { Private declarations }
    //判断输入是否为金额
    function isMoney(s:string):boolean;

    //判断输入是否为电话号码
    function isTelephone(s:string):boolean;

  public
    { Public declarations }
  end;

var
  UserInfo: TUserInfo;

implementation

uses ModifyUserfrm, delUserfrm;

{$R *.dfm}

function TUserInfo.isMoney(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) and (s[i]<>'.')then
      begin
         result:=false;
         exit;
      end;
      i:=i+1;
   end;
   result:=true;
end;

function TUserInfo.isTelephone(s: string): boolean;
var
   i:integer;
begin
   if length(s)=0 then
   begin
      result:=true;
      exit;
   end;
   i:=1;
   while i<=length(s) do
   begin
      if isNumeric(s[i])=false then
      begin
         result:=false;
         exit;
      end;
      i:=i+1;
   end;
end;

procedure TUserInfo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   query1.Close;
   self.free;
end;

procedure TUserInfo.FormCreate(Sender: TObject);
var
   maxNo, tmp:integer;
begin
   birthday.Date:=strToDate('1979-12-6');
   joinTime.Date:=now;

   {获取新添加用户的编号}
   with table1 do
   begin
      open;
      first;
      maxNo:=fieldByName('用户编号').AsInteger;
      while not eof do
      begin
         tmp:=fieldByName('用户编号').AsInteger;
         if maxNo<tmp then maxNo:=tmp;
         next;
      end;
      close;
   end;
   UserID.Text:=intToStr(maxNo+1);
   activeControl:=UserName;

end;

procedure TUserInfo.btnAddClick(Sender: TObject);
var
        maxNo, temp : integer;
begin
        // 添加一个用户
        try
            //检查用户名是否为空
            if( UserName.text = '') then
            begin
                messageDlg('"用户姓名"不能为空,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=UserName;
                abort;
            end

            //检查用户名是否过长
            else if(length(UserName.Text) > 8)then
            begin
                messageDlg('"用户姓名"太长,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=UserName;
                abort;
            end

            //检查生日是否合法
            else if(birthday.Date>=joinTime.Date) then
            begin
                messageDlg('"生日"输入错误,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=birthDay;
                abort;
            end

            //检查联系电话
            else if(length(tel.Text)>12 ) or (isTelephone(tel.Text)=false) then
            begin
                messageDlg('"联系电话"输入错误,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=tel;
                abort;
            end

            //检查住址
            else if(length(address.Text) > 20 ) then
            begin
                messageDlg('"住址"输入过长,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=address;
                abort;
            end

            //检查欠费
            else if(ismoney(arrearage.text) = false) then
            begin
                messageDlg('"欠费"输入错误,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=arrearage;
                abort;
            end

            //检查备注
            else if length(note.Text)>60 then
            begin
                messageDlg('"备注"输入过长,请重新输入!',mtWarning,[mbOk],0);
                activeControl:=note;
                abort;
            end;
            //
 
            with Table1 do
            begin
                open;
                append;
                fieldByName('用户编号').AsInteger := strToInt(UserID.text);
                fieldByName('姓名').AsString  := UserName.text;
                fieldByName('性别').AsString:=gender.Text;
                fieldByName('生日').AsDateTime:=birthday.Date;
                fieldByName('证件号码').AsString  := CardNum.text;
                fieldByName('级别').AsString:='普通会员';
                fieldByName('电话').AsString:=tel.Text;
                fieldByName('地址').AsString:=address.Text;
                fieldByName('注册时间').AsDateTime:=joinTime.Date;
                fieldByName('欠费').AsString:=arrearage.Text;
                fieldByName('备注').AsString:=note.Text;
                post;
                close;
            end;
        except
                on ex:EConvertError do
                begin
                    messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
                end;
        end;{end of try}

        // 更新表格使它同步显示添加内容
        with Query1 do
        begin
                close;
                sql.Clear;
                sql.Add('select * from Userinfo');
                open;
        end;

        // 显示添加成功消息
        messageDlg('新用户添加成功!',mtWarning,[mbOk],0);

        // 设置对话框焦点
        activeControl:=UserName;
end;

procedure TUserInfo.SortAscClick(Sender: TObject);
var
    context : string;
begin
    if( id.Checked = true )
        then context := '用户编号'
    else if ( name.Checked = true )
        then context := '姓名'
    else if ( enrolltime.Checked )
        then context := '注册时间'
    else if ( level.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 TUserInfo.SortDescClick(Sender: TObject);
var
    context : string;
begin
    if( id.Checked = true )
        then context := '用户编号'
    else if ( name.Checked = true )
        then context := '姓名'
    else if ( enrolltime.Checked )
        then context := '注册时间'
    else if ( level.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 TUserInfo.idClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( sortasc.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 TUserInfo.nameClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( sortasc.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 TUserInfo.enrolltimeClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( sortasc.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 TUserInfo.levelClick(Sender: TObject);
var
    sorttype : string;
begin
    //确定排序方式
    if ( sortasc.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 TUserInfo.DBGrid1CellClick(Column: TColumn);
begin
//    messageDlg('hehe',mtWarning,[mbOk],0);

end;

procedure TUserInfo.btnClearClick(Sender: TObject);
begin
    UserName.Text := '';
    UserID.Text := '';
    gender.ItemIndex := 0;
    birthday.DateTime := now;
    joinTime.DateTime := now;
    CardNum.Text := '';
    arrearage.text := '';
    tel.text := '';
    address.text := '';
    note.text := '';
end;

procedure TUserInfo.btnDeleteClick(Sender: TObject);
begin
    //
    frmdelUser := TfrmdelUser.Create(self);
    frmdelUser.ShowModal;
    //更新表格
    Query1.Close;
    Query1.Open;
end;

procedure TUserInfo.btnModifyClick(Sender: TObject);
begin
    //
    frmModifyUser := TfrmModifyUser.Create(self);
    frmModifyUser.ShowModal;
    //更新表格
    Query1.Close;
    Query1.Open;
end;

end.

⌨️ 快捷键说明

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