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

📄 registermember.pas

📁 餐饮管理源代码 使用BDE Administrator在本地机器上添加一个Paradox数据库别名命名为WorkData
💻 PAS
字号:
unit registerMember;

interface

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

type
  TfrmRegisterMember = class(TForm)
    GroupBox1: TGroupBox;
    eduLevel: TComboBox;
    Label5: TLabel;
    folk: TEdit;
    Label2: TLabel;
    memberName: TEdit;
    Label1: TLabel;
    gender: TComboBox;
    Label11: TLabel;
    birthday: TDateTimePicker;
    Label8: TLabel;
    Label10: TLabel;
    Label9: TLabel;
    joinTime: TDateTimePicker;
    Label7: TLabel;
    Label3: TLabel;
    address: TEdit;
    Label4: TLabel;
    balance: TEdit;
    Label6: TLabel;
    telephone: TEdit;
    Label12: TLabel;
    memberId: TEdit;
    deficiency: TEdit;
    note: TEdit;
    Label13: TLabel;
    Label14: TLabel;
    btnOk: TButton;
    btnClear: TButton;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    GroupBox3: TGroupBox;
    asc: TRadioButton;
    desc: TRadioButton;
    GroupBox2: TGroupBox;
    id: TRadioButton;
    name: TRadioButton;
    edu: TRadioButton;
    join: TRadioButton;
    Label15: TLabel;
    profession: TComboBox;
    DataSource1: TDataSource;
    Query1: TQuery;
    dot: TLabel;
    level: TLabel;
    Table1: TTable;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label16: TLabel;
    Label22: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnCloseClick(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 FormCreate(Sender: TObject);
    procedure btnOkClick(Sender: TObject);
  private
    { Private declarations }
    function isMoney(s:string):boolean;     //判断s可否转化成货币类型
    function isTelephone(s:string):boolean; //判断s是否为合法的电话号码
  public
    { Public declarations }
  end;

var
  frmRegisterMember: TfrmRegisterMember;

implementation

{$R *.dfm}

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

procedure TfrmRegisterMember.btnCloseClick(Sender: TObject);
begin
   self.free;
end;

procedure TfrmRegisterMember.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:='入会时间';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from member order by '+col+' asc');
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure TfrmRegisterMember.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:='入会时间';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from member order by '+col+' desc');
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure TfrmRegisterMember.idClick(Sender: TObject);
var
   t:string;
begin
   if asc.Checked then t:='asc'
   else if desc.Checked then t:='desc';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from member order by 会员编号 '+t);
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure TfrmRegisterMember.nameClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from member order by 会员姓名 '+s);
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure TfrmRegisterMember.eduClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from member order by 级别 '+s);
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure TfrmRegisterMember.joinClick(Sender: TObject);
var
   s:string;
begin
   if asc.Checked then s:='asc'
   else if desc.Checked then s:='desc';
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('select * from member order by 入会时间 '+s);
   try
      query1.Open;
   except
      query1.ExecSQL;
   end;
end;

procedure TfrmRegisterMember.btnClearClick(Sender: TObject);
var
   maxNo,tmp:integer;
begin
   {获取新添加会员的编号----------<会员表>}
   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;
   memberId.Text:=intToStr(maxNo+1);
   activeControl:=memberName;
   memberName.Text:='';
   folk.Text:='';
   gender.ItemIndex:=0;
   birthday.Date:=now;
   eduLevel.ItemIndex:=0;
   telephone.Text:='';
   address.Text:='';
   joinTime.DateTime:=now;
   balance.Text:='';
   deficiency.Text:='';
   profession.ItemIndex:=0;
   note.Text:='';
end;

procedure TfrmRegisterMember.FormCreate(Sender: TObject);
var
   maxNo,tmp:integer;
begin
   birthday.Date:=strToDate('1980-3-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;
   memberId.Text:=intToStr(maxNo+1);
   activeControl:=memberName;
end;

procedure TfrmRegisterMember.btnOkClick(Sender: TObject);
var
   maxNo,tmp:integer;
begin
   {添加一个新会员----------<会员表>}
   try
      {检查"会员姓名"}
      if (memberName.Text='') or (length(memberName.Text)>8) then
      begin
         messageDlg('"会员姓名"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=memberName;
         abort;
      end;
      {检查"生日"与"入会时间"}
      if birthday.Date>=joinTime.Date then
      begin
         messageDlg('"入会时间"或"生日"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=birthDay;
         abort;
      end;
      {检查"联系电话"}
      if (length(telephone.Text)>12)or(isTelephone(telephone.Text)=false) then
      begin
         messageDlg('"联系电话"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=telephone;
         abort;
      end;
      {检查"民族"}
      if(length(folk.Text)>6) then
      begin
         messageDlg('"民族"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=folk;
         abort;
      end;
      {检查"住址"}
      if(length(address.Text)>20) then
      begin
         messageDlg('"住址"输入过长,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=address;
         abort;
      end;
      {检查"结余"}
      if isMoney(balance.Text)=false then
      begin
         messageDlg('"结余"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=balance;
         abort;
      end;
      {检查"欠款"}
      if  isMoney(deficiency.Text)=false then
      begin
         messageDlg('"欠款"输入错误,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=deficiency;
         abort;
      end;
      {检查"备注"}
      if length(note.Text)>60 then
      begin
         messageDlg('"备注"输入过长,请重新输入!',mtWarning,[mbOk],0);
         activeControl:=note;
         abort;
      end;
      {将会员数据填入<会员表>}
      with table1 do
      begin
         open;
         append;
         fieldByName('会员编号').AsInteger:=strToInt(memberId.Text);
         fieldByName('会员姓名').AsString:=memberName.Text;
         fieldByName('性别').AsString:=gender.Text;
         fieldByName('民族').AsString:=folk.Text;
         fieldByName('学历').AsString:=eduLevel.Text;
         fieldByName('生日').AsDateTime:=birthday.Date;
         fieldByName('点数').AsInteger:=0;
         fieldByName('级别').AsString:='普通会员';
         fieldByName('电话').AsString:=telephone.Text;
         fieldByName('地址').AsString:=address.Text;
         fieldByName('入会时间').AsDateTime:=joinTime.Date;
         fieldByName('备注').AsString:=note.Text;
         fieldByName('结余').AsString:=balance.Text;
         fieldByName('欠款').AsString:=deficiency.Text;
         fieldByName('职业').AsString:=profession.Text;
         post;
         close;
      end;
   except
      on ex:EConvertError do
      begin
         messageDlg('输入有误,请重试!',mtWarning,[mbOk],0);
      end;
   end; {end of try}
   {让数据控件dbGrid1同步显示}
   with query1 do
   begin
      close;
      sql.Clear;
      sql.Add('select * from member');
      open;
   end;
   {清屏准备输入下一位新会员}
   btnClearClick(Sender);//调用清屏按钮的处理操作
   messageDlg('新会员添加成功!',mtWarning,[mbOk],0);
   activeControl:=memberName;
end;
function TfrmRegisterMember.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 TfrmRegisterMember.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;

end.

⌨️ 快捷键说明

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