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

📄 unit1.pas

📁 健身会馆会员管理,实现了部分财务管理和,报表统计功能
💻 PAS
📖 第 1 页 / 共 5 页
字号:
PageControl4.Visible :=true ;
PageControl5.Visible :=false ;
PageControl7.Visible :=false ;
zhaopianfrm.Close ;
shouzhifrm.Close ;
end;
end;

procedure TMainForm.Image6Click(Sender: TObject);
begin
if load.quanxian >4 then begin
PageControl1.Visible :=false;
PageControl2.Visible := false;
PageControl3.Visible :=false ;
PageControl4.Visible :=false ;
PageControl5.Visible :=true ;
PageControl7.Visible :=false ;
zhaopianfrm.Close ;
shouzhifrm.Close ;
ADOQuery0.Close;
ADOQuery0.SQL.Text :='select * from 级别分类';
ADOQuery0.Open;
ADOQuery2.Open;
ADOTable4.Open ;
end;
end;

procedure TMainForm.Image10Click(Sender: TObject);
begin
if load.quanxian >1 then begin
PageControl1.Visible :=false;
PageControl2.Visible := false;
PageControl3.Visible :=false ;
PageControl4.Visible :=false ;
PageControl5.Visible := false;
PageControl7.Visible :=true ;
shouzhifrm.Show ;
zhaopianfrm.Close ;
end;
end;

procedure TMainForm.Image8Click(Sender: TObject);
begin
close;
end;

procedure TMainForm.Edit1Change(Sender: TObject);
begin
         ADOQuery1.SQL.Text :='select * from 会员表 where  会员姓名=''' + edit1.Text  + ''' or 会员卡号=''' + edit1.Text + '''';
ADOQuery1.Open ;
end;

procedure TMainForm.TabSheet1Show(Sender: TObject);
begin
         ADOQuery1.SQL.Text :='select * from 会员表 where  会员姓名=''' + edit1.Text  + ''' or 会员卡号=''' + edit1.Text + '''';
ADOQuery1.Open ;
Edit1.SetFocus ;

end;

procedure TMainForm.DBEdit1Change(Sender: TObject);
var
riqi1,riqi2:single;
begin
if (old_kahao<>DBEdit1.Text) and (DBEdit1.Text<>'') then
begin
   old_kahao:=DBEdit1.Text;
ADOQuery2.Close ;
if DBEdit1.Text <>'' then
  begin
      ADOquery1.Edit ;
      //BitBtn5.Enabled :=true;
      if ADOQuery1.FieldValues['会员卡类型']='计时卡' then
          begin
             riqi1:= round(ADOquery1.FieldValues ['到期日期']);
             riqi2:=round(date);
             riqi1:=riqi1-riqi2;
             if riqi1<=0 then
                begin
                   ADOquery1.FieldByName('会员卡状态').AsString :='不可用';
                   BitBtn1.Enabled :=false;
                   Button13.Enabled :=false;
                   Button14.Enabled :=false;
                   Edit7.Enabled :=false;
                end;
          end
      else if ADOquery1.FieldValues ['剩余次数']<=0 then
          begin
              ADOquery1.FieldByName('会员卡状态').AsString :='不可用';
              BitBtn1.Enabled :=false;
              Button13.Enabled :=false;
              Button14.Enabled :=false;
              Edit7.Enabled :=false;
          end;
      ADOquery1.Post ;
    if ADOquery1.FieldValues ['会员卡状态']='可用' then
       begin
        BitBtn1.Enabled :=true;
       // Button13.Enabled :=true;
        Button14.Enabled :=true;
        Edit7.Enabled :=true;
       end;
    BitBtn5.Enabled :=true;
    ADOQuery2.SQL.Text :='select * from 会员消费表 where 会员卡号=''' + DBEdit1.Text + ''' order by 日期 DESC';
    ADOQuery2.Open;
  end
else
  begin
    BitBtn1.Enabled :=false;
  //  BitBtn5.Enabled :=false;
     Button13.Enabled :=false;
     Button14.Enabled :=false;
     Edit7.Enabled :=false;
  end;
end;

end;

procedure TMainForm.Button2Click(Sender: TObject);
begin
edit1.Text :='';
old_kahao:='';
end;

procedure TMainForm.BitBtn1Click(Sender: TObject);
var
ci,xiaofeijifen:single;
riqi1,riqi2:single;
duoji:boolean;
begin
DBGrid1.DefaultDrawing :=false;
if ADOTable2.FieldValues ['记次卡提醒']<>null then
  ci:=ADOTable2.FieldValues ['记次卡提醒']
else ci:=0;
if ADOTable2.FieldValues ['计时卡提醒']<>null then
riqi1:= ADOTable2.FieldValues ['计时卡提醒']
else riqi1:=0;
if DBEdit1.Text <>'' then
  begin
      if ADOquery1.FieldValues ['会员卡状态']='可用' then
           begin
              ADOquery2.Close ;
              ADOquery2.SQL.Text :='select * from 会员消费表';
              ADOquery2.Open ;
              ADOquery2.Append ;
              ADOquery2.FieldByName('会员卡号').AsString  := DBEdit1.text ;
              ADOquery2.FieldByName('日期').AsDateTime :=date+time ;
              ADOquery2.Post ;
              ADOQuery2.SQL.Text :='select * from 会员消费表 where 会员卡号=''' + DBEdit1.Text + ''' order by 日期 DESC';
              ADOQuery2.Open;
              ADOQuery1.Edit ;
              ADOquery1.FieldByName('消费次数').AsInteger :=ADOquery1.FieldValues ['消费次数'] + 1;
              if ADOquery1.FieldValues ['会员卡类型']='计次卡' then
                  begin
                     ADOquery1.FieldByName('剩余次数').AsInteger :=ADOquery1.FieldValues ['剩余次数'] - 1;
                     if ADOTable2.FieldValues ['记次卡提醒']<>null then
                       ci:= ADOquery1.FieldValues ['剩余次数']-ADOTable2.FieldValues ['记次卡提醒'] ;
                  end
              else begin
                     riqi1:= round(ADOquery1.FieldValues ['到期日期']);
                     riqi2:=round(date);
                     riqi1:=riqi1-riqi2;
                   end;
              if ( ci < 0 ) or (riqi1 < ADOTable2.FieldValues ['计时卡提醒']) then
                 showmessage('请及时冲值!        ');
              if ((ADOquery1.FieldValues ['剩余次数']<=0) and (ADOquery1.FieldValues ['会员卡类型']='计次卡')) or  ((riqi1<=0) and (ADOquery1.FieldValues ['会员卡类型']='计时卡')) then
                  begin
                   ADOquery1.FieldByName('会员卡状态').AsString :='不可用';
                   BitBtn1.Enabled :=false;
                  end;
              //ADOquery1.Post ;
              if (ADOQuery1.FieldValues['会员卡级别']<>'') and (ADOQuery1.FieldValues['会员卡级别']<>null) then
              begin
              ADOQuery0.Close ;
              ADOQuery0.SQL.Text :='select * from 级别分类 where 会员级别=''' + ADOQuery1.FieldValues['会员卡级别'] +'''';
              ADOQuery0.Open ;
              if (ADOQuery0.FieldValues['积分规则']<>'') and (ADOQuery0.FieldValues['积分规则']<>null) then
              begin
              ADOQuery0.SQL.Text :='select * from 积分规则表 where 积分规则=''' + ADOQuery0.FieldValues['积分规则'] +'''';
              ADOQuery0.Close ;
              ADOQuery0.Open ;
              //riqi1:=ADOQuery0.FieldValues['冲值积分系数'];
              if (ADOQuery0.FieldValues['多级积分递减']<>null) and (ADOQuery0.FieldValues['介绍人加分单价']<>null) and (ADOQuery0.FieldValues['允许多级积分']<>null) and (ADOQuery0.FieldValues['消费积分']<null) then
              begin
              ci:=ADOQuery0.FieldValues['多级积分递减'];
              riqi2:= ADOQuery0.FieldValues['介绍人加分单价'];
              duoji:= ADOQuery0.FieldValues['允许多级积分'];
              xiaofeijifen:=ADOQuery0.FieldValues['消费积分'];
              ADOQuery0.Close ;
              ADOQuery1.FieldByName('会员积分').AsFloat :=ADOQuery1.FieldValues['会员积分'] +xiaofeijifen;
              ADOQuery1.FieldByName('为上积分').AsFloat :=ADOQuery1.FieldValues['为上积分'] +xiaofeijifen;
              if  ADOQuery1.FieldValues['为上积分'] >  riqi2 then
                 begin
                   ADOQuery0.SQL.Text :='select * from 会员表 where 会员卡号=''' + ADOQuery1.FieldValues['介绍人卡号'] + '''';
                   ADOQuery0.Open ;
                   if not ADOQuery0.Eof then
                      begin
                         ADOQuery0.Edit ;
                         riqi1:=ADOQuery1.FieldValues['为上积分'];
                         ADOQuery0.FieldByName('会员积分').AsFloat :=ADOQuery0.FieldValues['会员积分'] + riqi1/riqi2;
                         ADOQuery1.FieldByName('为上积分').AsFloat :=0;
                         if duoji then
                            begin
                               while ci>0.01 do
                                  begin
                                     ADOQuery0.SQL.Text :='select * from 会员表 where 会员卡号=''' + ADOQuery0.FieldValues['介绍人卡号'] + '''';
                                     ADOQuery0.Close;
                                     ADOQuery0.Open ;
                                     if not ADOQuery0.Eof then
                                        begin
                                           ADOQuery0.Edit ;
                                           ADOQuery0.FieldByName('会员积分').AsFloat :=ADOQuery0.FieldValues['会员积分'] + riqi1/riqi2 * ci;
                                           ci:=ci * ci;
                                        end
                                     else begin
                                           ADOQuery0.Close;
                                           break;
                                        end;
                                  end;
                           end;
                     end;
                 end;
              end;
              end;//MainForm.ADOQuery2.FieldValues['积分规则']<>''
              end;//ADOQuery1.FieldValues['会员卡级别']<>''
              ADOquery1.Post ;
              DBEdit1Change(self);

           end
      else  begin
                if ADOquery1.FieldValues ['会员卡状态']='不可用' then
                     showmessage('会员卡需要冲值才能继续使用');
                if ADOquery1.FieldValues ['会员卡状态']='丢失' then
                     showmessage('会员卡已经挂失,不能继续使用,请确认会员身份');
           end;
  edit1.SelectAll ;
  end;
DBGrid1.DefaultDrawing :=true;
edit1.SetFocus;
edit1.SelectAll ;
BitBtn1.Enabled :=false;
end;



procedure TMainForm.Image7Click(Sender: TObject);
begin
//loadfrm.Show ;
qianxiangfrm.Show ;
end;

procedure TMainForm.Image1DblClick(Sender: TObject);
begin
MainForm.Visible:=not MainForm.Visible;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
ADOConnection1.Close ;
ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'huiyuan.mdb;Persist Security Info=False;Jet OLEDB:Database Password=jls863';
ADOConnection1.Open;
//ADOQuery1.Open ;
ADODataSet1.Open ;
ADODataSet2.Open ;
//ADOQuery3.Open ;
ADOTable1.Open ;
ADOTable2.Open ;
//NotifyIcon为全局变量,在程序的开头已经定义了
with NotifyIcon do
    begin
       cbSize:=SizeOf(TNotifyIconData);
       Wnd:=Handle; //指向当前窗体Form1的句柄
       uID:=1;
       uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
       uCallBackMessage:=WM_NID;
       hIcon:=Application.Icon.Handle;
       szTip:='会员管理';
    end;
//把设置好的变量NotifyIcon加入到系统中以便处理
Shell_NotifyIcon(NIM_ADD,@NotifyIcon);

Application.OnHint := ShowHint;
  OpenDialog.InitialDir := ExtractFilePath(ParamStr(0));
  //SaveDialog.InitialDir := OpenDialog.InitialDir;
  SetFileName(sUntitled);
  GetFontNames;
  SetupRuler;
  SelectionChange(Self);

  CurrText.Name := DefFontData.Name;
  CurrText.Size := -MulDiv(DefFontData.Height, 72, Screen.PixelsPerInch);

  //LanguageEnglish.Tag := ENGLISH;
  //LanguageFrench.Tag := FRENCH;
 // LanguageGerman.Tag := GERMAN;
 // case SysLocale.DefaultLCID of
  //  ENGLISH: SwitchLanguage(LanguageEnglish);
  //  FRENCH: SwitchLanguage(LanguageFrench);
 //   GERMAN: SwitchLanguage(LanguageGerman);
 // end;
end;

procedure TMainForm.WMNID(var msg:TMessage);
var CursorPos : TPoint;
begin
case msg.LParam of
WM_LBUTTONDBLCLK : MainForm.Visible:=not MainForm.Visible;
WM_RBUTTONUP:  //鼠标右键:弹出菜单
     begin
       GetCursorPos(CursorPos);
      Popupmenu1.Popup(CursorPos.X,CursorPos.Y);
       //popupmen1里面就可以加入显示主窗口、退出等功能。这个右键菜单可以是静态的,如上面一句来弹出;也可以动态建立,如下面所示的方法:
       //pm := createpopupmenu;//建立一个Hmenu,pm:hmenu;
       //AppendMenu(pm,0,ord('A'),'关于....');//在指定的菜单里添加一个菜单项
       //AppendMenu(pm,0,Ord('B'),'&Exit');
       //加入菜单事件---》处理WMCOMMAND消息即可
      // TrackPopupMenu(pm,Tpm_BottomAlign or Tpm_RightAlign, CursorPos.x, CursorPos.y, 0,handle,nil);
       //在图标上方显示该弹出式菜单
     end ;

End;
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE,@NotifyIcon);
end;

procedure TMainForm.N1Click(Sender: TObject);
begin
MainForm.Visible:=true;
end;

procedure TMainForm.N3Click(Sender: TObject);
begin
close;
end;

procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
   if bitbtn1.Enabled then
   BitBtn1Click(self);
end;

procedure TMainForm.Button1Click(Sender: TObject);
begin
Panel38.Visible :=true;
end;

procedure TMainForm.Panel2Click(Sender: TObject);
begin
Panel38.Visible :=false;
end;

procedure TMainForm.Panel3Click(Sender: TObject);
begin
Panel38.Visible :=false;
end;

procedure TMainForm.Panel1Click(Sender: TObject);
begin
Panel38.Visible :=false;
end;

procedure TMainForm.Panel4Click(Sender: TObject);
begin
Panel38.Visible :=false;
end;

procedure TMainForm.DBGrid17DblClick(Sender: TObject);
begin
if ADODataSet2.FieldValues ['会员卡号']<>null then
edit1.Text := ADODataSet2.FieldValues ['会员卡号'];
Panel38.Visible :=false;
end;

procedure TMainForm.BitBtn5Click(Sender: TObject);
begin
if load.quanxian >1 then begin
if  dbedit1.Text <>'' then begin
DataSource2.Enabled:=false;
chongzhifrm.ADOQuery1.Close ;
chongzhifrm.ADOQuery1.SQL.Text :='select * from 会员表 where 会员卡号=''' +DBEdit1.Text +'''';
chongzhifrm.ADOQuery1.Open ;
chongzhifrm.Show ;
end
else showmessage('请输入正确的会员卡号!!');
end
else showmessage('你没有权限冲值!!');
end;

procedure TMainForm.BitBtn67Click(Sender: TObject);
begin
ADOTable1.Post ;
BitBtn67.Enabled :=false;
end;

procedure TMainForm.DBEdit17KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9','.']) then
  key:=chr(0);
if (Pos('.', DBEdit17.Text) > 0) and (key='.') then
   key:=chr(0);
end;

procedure TMainForm.DBEdit18KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9','.']) then
  key:=chr(0);
if (Pos('.', DBEdit18.Text) > 0) and (key='.') then

⌨️ 快捷键说明

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