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

📄 main.pas

📁 针对快餐店的会员管理系统.具有详细的分类及管理作用
💻 PAS
📖 第 1 页 / 共 2 页
字号:

procedure TMainForm.FormActivate(Sender: TObject);
begin

   if (not Maxs)and(IsMax=1) then begin
      MainForm.WindowState:=wsMaximized;
      Maxs:=true;
   end;


   if not LogoIn then begin
      LoadForm.RzEdit1.Clear;
      LoadForm.ShowModal;
      if Not LogoIn then
         Application.Terminate
      else begin
         LoadPower;

         TestOverdueData;
      end;
   end;
end;

procedure TMainForm.Timer1Timer(Sender: TObject);
var
   NDate, NTime, NSecond,  ZT, SJ:String;
begin
   //在每分钟开始时,进行检测
   if OptionForm.Information.ItemIndex=1 then Exit;

   NSecond:=FormatDateTime('ss',now);
   if Nsecond<>'00' then Exit;
   //检查有没有到期的提醒记录
   NDate:=FormatDateTime(ShortDateFormat,now);
   NTime:=FormatDateTime(ShortTimeFormat,now);

   with DM1.TestRe do try
      Close;
      SQL.Clear;
      SQL.Add('Select * from ClientBespeak where Dates =:Date and Times =:Time');
      Parameters.ParamByName('Date').Value:=NDate;
      Parameters.ParamByName('Time').Value:=NTime;
      Open;
      ZT:=FieldByName('Motif').AsString;
      SJ:=FieldByName('Times').AsString;
      if RecordCount>0 then begin
         if Messagebox(handle,'现在已经有要联系的客户,您现在就要打开所在联系的客户列表吗?','询问',MB_OKCANCEL+MB_ICONQUESTION)=IDOK  then begin
            ShowWindows(53);
            //定位现在需要联系的客户所在的行
            DM1.ADODataSet9.Locate('Motif',ZT,[]);
            DM1.ADODataSet9.Locate('Times',SJ,[]);
         end;
      end;
   except
   end;
end;

procedure TMainForm.ToolButton1Click(Sender: TObject);
begin
//重新登陆系统
  //记录用户退出时间
  LoadForm.UserExitDate;
  LogoIn:=false;
  RzStatusPane2.Caption:='';
  FormActivate(sender);
end;

procedure TMainForm.LoadPower;
begin
//导入权限分配
   PowerChange.Enabled:=power;
   ChangePassword.Enabled:=Password;
   SystemLog.Enabled:=Log;
   BackUpdata.Enabled:=BackUp;
   Option.Enabled:=BackUp;
   LogReport.Enabled:=Log;
   EXCEL1.Enabled:=DataOut;
end;

procedure TMainForm.PrintReport(ID: Integer);
begin
DataSet:=TDataSet.Create(self);
//打印报表
    RMGridReport1.Clear;
    try
       //配置数据源
       case ID of
           1 : DataSet:=DM1.ADODataSet1;
           2 : DataSet:=DM1.LinkManList;
           3 : DataSet:=DM1.ADODataSet10;
           4 : DataSet:=DM1.ADODataSet9;
           5 : DataSet:=DM1.SellList;
           6 : DataSet:=DM1.ADODataSet5;
           7 : DataSet:=DM1.LogData;
           //单位联系人
           211: DataSet:=DM1.ADODataSet2;
           //单位拜访记录
           212: DataSet:=DM1.ADODataSet4;
           // 单位销售记录
           213: DataSet:=DM1.ADODataSet6;
           //单位预约记录
           214: DataSet:=DM1.ADODataSet8;
       end;

       if DataSet.IsEmpty then begin
          Messagebox(handle,'没有可打印的报表数据!','错误',MB_Ok+MB_ICONWARNING);
          Exit;
       end else RMDBDataSet1.DataSet:=DataSet;

       if (ID=5)or(ID=213) then
          RMDBDataSet2.DataSet:=DM1.ADODataSet7
       else RMDBDataSet2.DataSet:=nil;


       //从资源文件中导入报表数据流
       case ID of
           1 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Client','REP'));
      211, 2 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'LinkMan','REP'));
      212, 3 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Visit','REP'));
      214, 4 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Bespeak','REP'));
      213, 5 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'SELL','REP'));
           6 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Product','REP'));
           7 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'LOG','REP'));
       end;
       RMGridReport1.ReportInfo.Title:='四川廖氏重庆分公司客户系管理系统';
       RMGridReport1.ShowReport;
    except
    end;
end;

procedure TMainForm.ClientListReportExecute(Sender: TObject);
begin
   PrintReport(TAction(sender).Tag);
end;

procedure TMainForm.ShowWindows(ID: Integer);
begin
//分配窗口显示
  case ID of
     51 : OpenForm(TClientListForm,  ClientListForm , self);//全部客户列表
     52 : OpenForm(TVisitForm, VisitForm, self);   //全部客户拜访记录
     53 : OpenForm(TBespeakForm, BespeakForm , self);  //显示所有客户预约信息
     54 : OpenForm(TProducts, Products, Self); //显示产品信息
     55 : PowerSetForm.ShowModal; //权限管理
     56 : PasswordForm.ShowModal;//更改密码
     57 : LogForm.ShowModal;//系统日志
     58 : EditAreaForm.ShowModal;//区域设置
     59 : BackUpForm.ShowModal;//备份数据库
     60 : OptionForm.ShowModal;//数据备份设置
     61 : CompressDataForm.ShowModal;//ACCESS数据压缩
     62 : OpenForm(TLinkManForm, LinkManForm, Self);//联系人列表
     63 : OpenForm(TSellListForm, SellListForm, Self);//产品销售列表
     64 : SortSetForm.ShowModal;  //设置数据库类别
  end;
end;

procedure TMainForm.ClientListExecute(Sender: TObject);
begin
   ShowWindows(TAction(sender).Tag);
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//记录用户退出时间
   LoadForm.UserExitDate;
   DataSet.Free;
end;

procedure TMainForm.OClickSort(sender: TObject);
var
   Captions : String;
begin
//今日要事响应
   with sender as TRzgroupItem do begin
      Captions := Copy(Caption,4,100);
      DM1.ADODataSet9.Locate('ClientName',Captions,[]);
      ShowWindows(53);
      case TRzgroupItem(sender).Tag of
          100  :  BespeakForm.RadioGroup.ItemIndex:=0;
          200  :  BespeakForm.RadioGroup.ItemIndex:=3;
      end;
   end;
end;


procedure TMainForm.ToolButton5Click(Sender: TObject);
begin
//更新全部数据
  with DM1 do try
     ADODataSet1.Requery;
     ADODataSet2.Requery;
     ADODataSet3.Requery;
     ADODataSet4.Requery;
     ADODataSet5.Requery;
     ADODataSet6.Requery;
     ADODataSet7.Requery;
     ADODataSet8.Requery;
     ADODataSet9.Requery;
     ADODataSet10.Requery;
     ADOTable1.Requery;
     LinkManList.Requery;
     SellList.Requery;
     ADODataSet11.Requery;
     LogData.Requery;
  except
     Messagebox(handle,'数据库刷新失败!','错误',MB_OK+MB_ICONERROR);
  end;
end;

procedure TMainForm.ToolButton6Click(Sender: TObject);
begin
   SearchForm.ShowModal;
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
//保存窗口信息
   ini.WriteInteger('WindowsState','Left',Left);
   ini.WriteInteger('WindowsState','Top',Top);
   ini.WriteInteger('WindowsState','Width',Width);
   ini.WriteInteger('WindowsState','Height',Height);
   if MainForm.WindowState=wsMaximized then
      Ini.WriteInteger('MaxWindow','Max',1)
   else Ini.WriteInteger('MaxWindow','Max',0);
   Ini.Free;
   productList.Free;
end;

procedure TMainForm.ToolButton8Click(Sender: TObject);
begin
  if RzSizePanel1.HotSpotClosed then
     RzSizePanel1.RestoreHotSpot
  else RzSizePanel1.CloseHotSpot;

end;

procedure TMainForm.EMailExecute(Sender: TObject);
begin
   //发送电子邮件
   ShellExecute(handle,nil,'mailto:skymouser@163.com?subject=关于“四川廖氏重庆分公司客户系管理系统”',nil,nil,SW_SHOWNORMAL);
end;

procedure TMainForm.TestOverdueData;
var
   Index : Integer;
begin
//检测过期记录
  with DM1.ADOQuery1 do try
     Close;
     SQL.Clear;
     SQL.Add('select * from ClientBespeak where Dates<:PM');
     Parameters.ParamByName('PM').Value:=FormatDateTime(ShortDateFormat,Now);
     Open;
     if RecordCount>0 then begin
        Index:=Messagebox(handle,Pchar('您的预约记录中有 '+IntToStr(RecordCount)+' 条已经过期的记录,请单击“是”来删除这些记录,单击“否”来对这些记录进行转化!'),'警告',MB_YESNOCANCEL+MB_ICONWARNING+MB_DEFBUTTON2+MB_TOPMOST);
        if index=idyes then begin
           Close;
           SQL.Clear;
           SQL.Add('Delete From ClientBespeak where Dates<:PM');
           Parameters.ParamByName('PM').Value:=FormatDateTime(ShortDateFormat,Now);
           ExecSQL;
        end else if index=idno then begin
           ShowWindows(53);
           BespeakForm.RadioGroup.ItemIndex:=4;
        end;
     end;
     Close;
  except
  end;
end;

function TMainForm.OutToStarAndEnd: String;
var
   I      : Integer;
   Before,
   After  : String;
begin
//返回本星期的起止日期的SQL语句
  if ini.ReadInteger('SetWeek','Set',0)=0 then
     i := DayOfWeek(Now)
  else I := DayOfWeek(Now)-1;

  Before := FormatDateTime(ShortDateFormat,Now-(I-1));
  After  := FormatDateTime(ShortDateFormat,now+(7-I));
  Result:='Between '+''''+Before+''''+'and'+''''+After+'''';
end;

procedure TMainForm.StatProductSell;
var
   I : Integer;
   S : String;
begin
    //统计销售量
    productList.Clear;
    with DM1.ADODataSet5 do try
       First;
       for i:=0 to RecordCount-1 do begin
          productList.Add(FieldByName('ProductName').AsString);
          Next;
       end;
    except
       Exit;
    end;

    //将统计的销售量记录到产品目录中
    S:=DM1.ADODataSet5.CommandText;
    for i:=0 to ProductList.Count-1 do begin
      with DM1.ADOQuery1 do try
         Close;
         SQL.Clear;
         SQL.Add('Select SUM(Number) as [PAM] from SellDetail where ProductName='+''''+ProductList.Strings[i]+'''');
         Open;
         DM1.ADODataSet5.Close;
         DM1.ADODataSet5.CommandText:='Select * from ProductInfo where ProductName='+''''+ProductList.Strings[i]+'''';
         DM1.ADODataSet5.Open;
         DM1.ADODataSet5.Edit;
         DM1.ADODataSet5.FieldByName('SellNumber').AsInteger:=FieldByName('PAM').AsInteger;
         DM1.ADODataSet5.Post;
      Except
      end;
    end;
    DM1.ADODataSet5.Close;
    DM1.ADODataSet5.CommandText:=S;
    DM1.ADODataSet5.Open;
end;

procedure TMainForm.HelpExecute(Sender: TObject);
begin
   //打开帮助文件
   try
      ShellExecute(Handle, 'open', 'Help.pdf', nil, nil, SW_SHOWNORMAL);
   except
      Messagebox(handle,'无法打开帮助文档,请检查Adobe Reader 6.0 或更高版本是否安装','错误',MB_OK+MB_ICONWARNING);
   end;
end;

end.

⌨️ 快捷键说明

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