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

📄 frmmain.~pas

📁 一个小型餐饮管理系统,可支持小票打印.还存在一些小问题,希望朋友们帮助完成. QQ:15372627 E-mail:hdw802.163.com
💻 ~PAS
字号:
unit FrmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, ExtCtrls, RzTabs, ImgList, RzListVw, Grids,
  DBGrids, RzPanel, RzStatus, StdCtrls, RzButton,Unit_CT, DB, DBClient,
  Unit_XF,
  Unit_Admin;

type
  Tfrm_main = class(TForm)
    MainMenu1: TMainMenu;
    N2: TMenuItem;
    N3: TMenuItem;
    N5: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N4: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N27: TMenuItem;
    Panel1: TPanel;
    Panel2: TPanel;
    StatusBar1: TStatusBar;
    Panel3: TPanel;
    Panel4: TPanel;
    MainimageList: TImageList;
    DBGrid1: TDBGrid;
    RzPageControl2: TRzPageControl;
    TabSheet4: TRzTabSheet;
    RzGroupBox1: TRzGroupBox;
    RzGroupBox2: TRzGroupBox;
    RzClockStatus1: TRzClockStatus;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Lab_Rate: TLabel;
    JD_Time: TLabel;
    YY_time: TLabel;
    XF_Money: TLabel;
    lab_total: TLabel;
    Lab_Used: TLabel;
    Lab_Empty: TLabel;
    Lab_YD: TLabel;
    Lab_Stop: TLabel;
    PopupMenu1: TPopupMenu;
    p4: TMenuItem;
    p3: TMenuItem;
    p2: TMenuItem;
    p1: TMenuItem;
    N39: TMenuItem;
    p5: TMenuItem;
    p6: TMenuItem;
    p7: TMenuItem;
    N43: TMenuItem;
    p10: TMenuItem;
    Panel6: TPanel;
    txt_memo: TRzMarqueeStatus;
    Panel5: TPanel;
    CT_CDS: TClientDataSet;
    Room: TRzTabControl;
    CTListView: TRzListView;
    Label9: TLabel;
    PopupMenu2: TPopupMenu;
    N35: TMenuItem;
    N36: TMenuItem;
    N37: TMenuItem;
    N38: TMenuItem;
    N40: TMenuItem;
    N41: TMenuItem;
    PopupMenu3: TPopupMenu;
    N42: TMenuItem;
    N44: TMenuItem;
    N45: TMenuItem;
    N47: TMenuItem;
    DataSource1: TDataSource;
    xfcpinfo_CDS: TClientDataSet;
    Timer1: TTimer;
    procedure N12Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure p4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure p1Click(Sender: TObject);
    procedure CTListViewSelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure FormActivate(Sender: TObject);
    procedure RoomChange(Sender: TObject);
    procedure p10Click(Sender: TObject);
    procedure p2Click(Sender: TObject);
    procedure CTListViewClick(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure N14Click(Sender: TObject);
  private
    { Private declarations }
    MyCT:TCT_info;
    MYXF:TXF_Info;
    MyAdmin:TAdmin;

    
  public
    { Public declarations }
    AdminID:Integer;
    AdminName,AdminRule,LSH:String;
    MaxMoney:Currency;
    CTID:Integer;
    Procedure CTDisp;
    Procedure After_KD;
    Procedure Before_KD;
    procedure DataDisp;
    Procedure XfKD;
  end;

  function BlockInput(fFreezeInput : boolean):DWord; stdcall; external 'user32.DLL';

var
  frm_main: Tfrm_main;

implementation

uses FrmSystem, FrmKDMaster, FrmJz, FrmXf, FrmBKYD, FrmUpdatePwd,
  FrmLocksys, Frmjob;

{$R *.dfm}

procedure Tfrm_main.After_KD;
begin
 p1.Enabled:=True;
 p2.Enabled:=True;
 p3.Enabled:=True;
 p4.Enabled:=False;
 p5.Enabled:=True;
 p6.Enabled:=True;
 P7.Enabled:=True;
// P8.Enabled:=True;
// P9.Enabled:=True;
 P10.Enabled:=True;
end;

procedure Tfrm_main.Before_KD;
begin
 p1.Enabled:=False;
 p2.Enabled:=False;
 p3.Enabled:=False;
 p4.Enabled:=True;
 p5.Enabled:=False;
 p6.Enabled:=False;
 P7.Enabled:=true;
// P8.Enabled:=False;
// P9.Enabled:=False;
 P10.Enabled:=true;
end;

procedure Tfrm_main.CTDisp;
Var
 i:integer;
begin
 CT_CDS.Data:=MYCT.CTList(room.Tabs.Items[Room.TabIndex].Caption);
 CTListView.Items.Clear;
 i:=0;
 While Not CT_Cds.Eof do
 Begin
  CTListView.Items.Add.Caption:=CT_cds.fieldByname('Type_name').AsString;
  CTlistView.Items[i].ImageIndex:=CT_cds.FieldByName('CT_Status').AsInteger;
  CT_Cds.Next;
  i:=i+1;
 End;
 lab_total.Caption:=IntToStr(MyCT.CTTotal)+'张';
 Lab_Used.Caption:=IntToStr(MyCT.CTUsed)+'张';
 Lab_Empty.Caption:=IntToStr(MyCT.CTEmpty)+'张';
 Lab_YD.Caption:=IntToStr(MyCT.CTYD)+'张';
 Lab_Stop.Caption:=IntToStr(MyCT.CTStop)+'张';
 Lab_Rate.Caption:=FloatTostr(MYCT.CTUseRate*100)+'%';
  JD_Time.Caption:='--:--:--';
  YY_Time.Caption:='--:--:--';
  Xf_Money.Caption:='¥0.00元';
end;

procedure Tfrm_main.N12Click(Sender: TObject);
begin
if MessageDlg('是否真的要退出刀郎音乐食府管理系统?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then
 Application.Terminate;
end;

procedure Tfrm_main.N5Click(Sender: TObject);
begin
 Frm_system.Showmodal;
end;

procedure Tfrm_main.p4Click(Sender: TObject);
begin
if CTListView.Selected<>nil then
begin
  Frm_KDMaster.Caption:='顾客开单  '+room.Tabs.Items[Room.TabIndex].Caption;
  Frm_KDMaster.LabTH.Caption:=CTListView.Selected.Caption;
  CTID:=MyCT.CT_ID(room.Tabs.Items[Room.TabIndex].Caption,CTListView.Selected.Caption);
  Frm_KDMaster.ShowModal;
end;
end;

procedure Tfrm_main.FormCreate(Sender: TObject);
begin
 MyCT:=Tct_info.create;
 MyXF:=Txf_Info.create;
 MyAdmin:=TAdmin.Create;
 Before_KD;
end;

procedure Tfrm_main.p1Click(Sender: TObject);
Var
 TmpStatus:Integer;
begin
 CTID:=MyCT.CT_ID(room.Tabs.Items[Room.TabIndex].Caption,CTListView.Selected.Caption);
 if MyXf.Is_Xf_Data(CTID)=True then
  Begin
  Frm_jz.Label2.Caption:=MYCT.Get_CTCurr_LSH(CTID);
  Frm_jz.Label4.Caption:=CTListView.Selected.Caption;
  Frm_jz.xfmoney.Caption:=format('%*.*f',[8,2,MyXf.GetXfMoney(MYCT.Get_CTCurr_LSH(CTID))]);
  Frm_Jz.ShowModal;
  end
 Else
  Begin
  if MessageDlg('此宾客还未消费,确定退单吗?',mtConfirmation, [mbYes, mbNo], 0)=mrYes then
   Begin
    CTListView.Selected.ImageIndex:=0;
    Before_KD;
    MyCT.UpDateCTStatus(CTID,0);
    TmpStatus:=MyCT.Get_CTStatus(CTID);
    MyCT.Update_LSH(CTID,TmpStatus);
   end;
  End;
end;

procedure Tfrm_main.CTListViewSelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
if CTListView.Selected<>nil then
begin
 CTID:=MyCT.CT_ID(room.Tabs.Items[Room.TabIndex].Caption,CTListView.Selected.Caption);
 DataDisp;
 if (Myct.Get_CTStatus(CTID)=2) or (Myct.Get_CTStatus(CTID)=0)   Then
    Before_KD
  else
    After_KD;
end;
end;

procedure Tfrm_main.FormActivate(Sender: TObject);
begin
 StatusBar1.Panels[2].Text:='当前操作员:'+AdminName;
 CTDisp;
end;

procedure Tfrm_main.RoomChange(Sender: TObject);
begin
 CTDisp;
end;


procedure Tfrm_main.p10Click(Sender: TObject);
begin
 Frm_BKYD.ShowModal;
end;

procedure Tfrm_main.p2Click(Sender: TObject);
begin
 xfkd;
end;

procedure Tfrm_main.CTListViewClick(Sender: TObject);
begin
if CTListView.Selected<>nil then
Begin
 DataSource1.Enabled:=True;
 CTID:=MyCT.CT_ID(room.Tabs.Items[Room.TabIndex].Caption,CTListView.Selected.Caption);
 if MyCT.Get_CTStatus(CTID)=1 Then
 Begin
  DataDisp;
 end
 Else
 Begin
  Before_KD;
  JD_Time.Caption:='--:--:--';
  YY_Time.Caption:='--:--:--';
  Xf_Money.Caption:='¥0.00元';
  if MyCT.Get_CTStatus(CTID)=0 Then
   if room.Tabs.Items[Room.TabIndex].Caption<>'豪华包房' Then
     txt_memo.Caption:=CTListView.Selected.Caption+'餐台空闲中~~,可以使用~~'
   Else
     txt_memo.Caption:=CTListView.Selected.Caption+'包间空闲中~~,可以使用~~';

   if MyCT.Get_CTStatus(CTID)=2 Then
   if room.Tabs.Items[Room.TabIndex].Caption<>'豪华包房' Then
     txt_memo.Caption:=CTListView.Selected.Caption+'餐台已预订~~,请选择其它餐台或包间~~'
   Else
     txt_memo.Caption:=CTListView.Selected.Caption+'包间已预订~~,请选择其它包间或餐台~~';

  XfCpInfo_CDS.Data:=MyXf.GetDatailTmpList('');
 End;
End
else
 begin
 Before_KD;
 XfCpInfo_CDS.Data:=MyXf.GetDatailTmpList('');
 end;

end;

procedure Tfrm_main.DataDisp;
begin
  JD_Time.Caption:=TimeToStr(MyCT.Get_KTTime(CTID));
  YY_time.Caption:=TimeToStr(Now-MyCT.Get_KTTime(CTID));
  XfCpInfo_CDS.Data:=MyXf.GetDatailTmpList(MyCT.Get_CTCurr_LSH(CTID));
  Xf_money.Caption:=format('¥%*.*F元',[6,2,myxf.GetXfMoney(MyCT.Get_CTCurr_LSH(CTID))]);
  if room.Tabs.Items[Room.TabIndex].Caption<>'豪华包房' Then
   txt_memo.Caption:=CTListView.Selected.Caption+'餐台   消费清单如下: 消费数量:'+IntToStr(myxf.GetXfNum(MyCT.Get_CTCurr_LSH(CTID)))+'  总消费金额:'+Xf_money.Caption
  Else
   txt_memo.Caption:=CTListView.Selected.Caption+'包间   消费清单如下: 消费数量:'+IntToStr(myxf.GetXfNum(MyCT.Get_CTCurr_LSH(CTID)))+'  总消费金额:'+Xf_money.Caption

end;

procedure Tfrm_main.XfKD;
begin
 if CTListView.Selected<>nil then
begin
 CTID:=MyCT.CT_ID(room.Tabs.Items[Room.TabIndex].Caption,CTListView.Selected.Caption);

 Frm_xf.lab_lsh.Caption:=MyCT.Get_CTCurr_lsh(CTID);
 Frm_xf.lab_CTINFO.Caption:= room.Tabs.Items[Room.TabIndex].Caption+'  ('+CTListView.Selected.Caption+')';
 Frm_xf.showmodal;
end;
end;

procedure Tfrm_main.N13Click(Sender: TObject);
begin
 Frm_updatepwd.ShowModal;
end;

procedure Tfrm_main.N15Click(Sender: TObject);
begin
 Frm_Locksys.ShowModal;
end;

procedure Tfrm_main.Timer1Timer(Sender: TObject);
var
  vLastInputInfo: TLastInputInfo;
begin
  vLastInputInfo.cbSize := SizeOf(vLastInputInfo);
  GetLastInputInfo(vLastInputInfo);
  if GetTickCount - vLastInputInfo.dwTime > 1000*30 then
  begin
    timer1.Enabled:= False;
 //   BlockInput(True);
    Frm_Locksys.ShowModal;
  end;
end;

procedure Tfrm_main.N14Click(Sender: TObject);
begin
 Frm_Job.Showmodal;
end;

End.

⌨️ 快捷键说明

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