📄 unit1.pas
字号:
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 + -