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

📄 c_ctmain.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit C_ctmain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, ToolWin, ComCtrls, Menus, Grids,
  DB, DBTables, C_CtDefine, ImgList, TeEngine, Series, TeeProcs, Chart,
  DBGrids, XPMenu, IniFiles, DBCtrls;

type
  TCtmainForm = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    ToolBar1: TToolBar;
    btnXt: TBitBtn;
    btnKt: TBitBtn;
    btnZt: TBitBtn;
    btnBt: TBitBtn;
    btnQt: TBitBtn;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    Panel4: TPanel;
    sgdCtzt: TStringGrid;
    tblCtzt: TTable;
    ImageList1: TImageList;
    N17: TMenuItem;
    N18: TMenuItem;
    btnQuit: TBitBtn;
    btnRefresh: TBitBtn;
    tblCtdc: TTable;
    dsCtdc: TDataSource;
    tblCtdcD_CTMC: TStringField;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    qryYdcy: TQuery;
    tblCtztD_CTBH: TStringField;
    tblCtztD_CTMC: TStringField;
    tblCtztD_CTZT: TStringField;
    tblCtztD_DCBH: TStringField;
    tblCtztD_KRXM: TStringField;
    tblCtztD_KRSL: TIntegerField;
    tblCtztD_XFRQ: TDateTimeField;
    tblCtztD_XFSJ: TDateTimeField;
    tblCtztD_JZRQ: TDateTimeField;
    tblCtztD_JZSJ: TDateTimeField;
    tblCtdcD_DCBH: TStringField;
    tblCtdcD_CTBH: TStringField;
    tblCtdcD_XMBH: TStringField;
    tblCtdcD_DCLB: TStringField;
    tblCtdcD_XFRQ: TDateTimeField;
    tblCtdcD_XFSJ: TDateTimeField;
    tblCtdcD_SJDM: TStringField;
    tblCtdcD_KRSL: TIntegerField;
    tblCtdcD_YCBZ: TStringField;
    tblCtdcD_KRXM: TStringField;
    tblCtdcD_JSBZ: TStringField;
    tblCtdcD_JZFS: TStringField;
    tblCtdcD_KHBH: TStringField;
    tblCtdcD_XYKBH: TStringField;
    tblCtdcD_XFJE: TFloatField;
    tblCtdcD_YHJE: TFloatField;
    tblCtdcD_CZYXM: TStringField;
    tblCtdcD_YDBH: TStringField;
    tblCtdcD_BZ: TStringField;
    Splitter2: TSplitter;
    N25: TMenuItem;
    N26: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    N31: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    btnYd: TBitBtn;
    DBGrid1: TDBGrid;
    btnJt: TBitBtn;
    N32: TMenuItem;
    Panel3: TPanel;
    Chart1: TChart;
    Series1: THorizBarSeries;
    GroupBox1: TGroupBox;
    lblXfze: TLabel;
    lblJzze: TLabel;
    lblRmb: TLabel;
    lblXyk: TLabel;
    lblZp: TLabel;
    lblJzxj: TLabel;
    lblQt: TLabel;
    Bevel1: TBevel;
    lblYdze: TLabel;
    N33: TMenuItem;
    N34: TMenuItem;
    procedure N12Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sgdCtztDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure sgdCtztSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sgdCtztDblClick(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure btnXtClick(Sender: TObject);
    procedure btnZtClick(Sender: TObject);
    procedure btnBtClick(Sender: TObject);
    procedure btnQtClick(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure btnRefreshClick(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure N20Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure N23Click(Sender: TObject);
    procedure N24Click(Sender: TObject);
    procedure tblYdcyD_YDBZGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure N26Click(Sender: TObject);
    procedure N30Click(Sender: TObject);
    procedure N31Click(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btnYdClick(Sender: TObject);
    procedure btnJtClick(Sender: TObject);
    procedure sgdCtztKeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure N33Click(Sender: TObject);
    procedure OnWjzcx(Sender: TObject);
  private
    { Private declarations }
    procedure ShowCzl(AZs,ASy: Integer);
    procedure ShowXx;
  public
    { Public declarations }
    FCtNum: Integer;
    FSelect: Integer;
    FCtzt: array of TCtzt;

    procedure ShowCtzt;
    procedure Ydcykt(const ADcbh,ACtbh,AKrxm,AYcbz,AYdbz: string;AYcje: Currency);
  end;

const
  ColNum = 12;//每行显示的个数

var
  CtmainForm: TCtmainForm;

implementation

uses C_ctxfxm,
     C_ctth,
     C_cddm,
     C_Ctkt,
     C_ctdc,
     C_Ctxt,
     C_CtData,
     C_Fcfjz,
     C_Yycx,
     C_Xhtj,
     C_Dcbd,
     C_Ctxtm,
     C_Klsz,
     C_Password,
     C_About,
     C_Xtsz, C_Yytj, C_Ctyd, C_Ctjt, C_Wjzcx;

{$R *.dfm}

//显示餐厅状态
procedure TCtmainForm.ShowCtzt;
var
  I,ASy: Integer;
  s: string;
begin
  ASy := 0;
  tblCtzt.Refresh;
  FCtNum := tblCtzt.RecordCount;
  SetLength(FCtzt,FCtNum);
  sgdCtzt.ColCount := ColNum;
  sgdCtzt.RowCount := (FCtNum div ColNum) + 1;
  tblCtzt.First;

  qryYdcy.Close;
  qryYdcy.ParamByName('RQ').AsDate := Date;
  qryYdcy.Open;

  i := 0;
  while not tblCtzt.Eof do
  begin
    FCtzt[i].ACtbh := tblCtztD_CTBH.Value;
    FCtzt[i].ACtmc := tblCtztD_CTMC.Value;
    FCtzt[i].ACtzt := tblCtztD_CTZT.Value;
    FCtzt[i].ADcbh := tblCtztD_DCBH.Value;
    FCtzt[i].AXfrq := tblCtztD_XFRQ.Value;
    FCtzt[i].AXfsj := tblCtztD_XFSJ.Value;
    FCtzt[i].AJzrq := tblCtztD_JZRQ.Value;
    FCtzt[i].AJzsj := tblCtztD_JZSJ.Value;
    FCtzt[i].AKrsl := tblCtztD_KRSL.Value;
    FCtzt[i].AKrxm := tblCtztD_KRXM.Value;
    FCtzt[i].AYdbz := '';
    FCtzt[i].ASjdm := '';

    if qryYdcy.Locate('D_CTBH',FCtzt[i].ACtbh,[]) then
    begin
      if IS_YDXS then
        FCtzt[i].AColor := clRed
      else
        FCtzt[i].AColor := cl3DLight;
      FCtzt[i].AYdbz := qryYdcy.FieldByName('D_KRXM').AsString;// '★';
      FCtzt[i].ASjdm := qryYdcy.FieldbyName('D_SJDM').AsString;
    end;
    //统计消费
    if FCtzt[i].ACtzt <> CTZT_OK then
    begin
      s := 'select sum(D_DJ*(D_XFSL-D_THSL)) from DCMX where (D_DCBH="'
           +FCtzt[i].ADcbh
           +'")and(D_CTBH="'
           +FCtzt[i].ACtbh
           +'")and(D_DEL="F")';
      //edit by ls. 20020902 取整
      FCtzt[i].AXfje := Trunc(CtData.SumJe(s)+0.99);
    end
    else
      FCtzt[i].AXfje := 0;

    if FCtzt[i].ACtzt = CTZT_OK then
    begin
      if FCtzt[i].AYdbz = '' then
        FCtzt[i].AColor := cl3DLight;
      FCtzt[i].AImage := 0;
    end;

    if FCtzt[i].ACtzt = CTZT_USE then
    begin
      FCtzt[i].AColor := clSkyBlue;
      FCtzt[i].AImage := 1;
      Inc(ASy);
    end;

    if FCtzt[i].ACtzt = CTZT_JZ then
    begin
      FCtzt[i].AColor := clYellow;
      FCtzt[i].AImage := 2;
      Inc(ASy);
    end;

    Inc(i);
    tblCtzt.Next;
  end;
  qryYdcy.Close;
  sgdCtzt.Refresh;
  tblCtdc.Refresh;
  ShowXx;
  ShowCzl(FCtNum,ASy);
end;

//edit by ls. 20020903
procedure TCtmainForm.ShowXx;
var
  AXfze,AJzze,ARmb,AXyk,AZp,AJzxj,AQt,AYdze: Currency;
  s : string;
begin
  ARmb := 0;AXyk := 0;
  AZp := 0;AQt := 0;
  GroupBox1.Caption := '结帐员 '+Czy.CzyXm;
  s := 'select sum(D_DJ*(D_XFSL-D_THSL)) from DCMX where D_DEL="F"';
  AXfze := CtData.SumJe(s);
  s := 'select sum(D_XFJE) from CTDC where (D_CZYXM="'+CZY.CzyXm+'")and(D_CTBH="0")and(D_DCLB="'+DCLB_QT+'")';
  AXfze := AXfze + CtData.SumJe(s);
  s := 'select sum(D_XFJE) from YDCY where (D_CTBH="0")and(D_RZBZ="T")and(D_SYRQ=:D)';
  with Ctdata.qrySum do
  begin
    Close;
    SQL.Clear;
    SQL.Add(s);
    ParamByName('D').AsDate := Date;
    Open;
    if Fields[0].IsNull then AYdze := 0
    else AYdze := Fields[0].AsCurrency;
  end;

  s := 'select D_JZFS,sum(D_XFJE),sum(D_YHJE) from CTDC where (D_CZYXM="'+CZY.CzyXm+'")and(D_JZFS<>"")and(D_CTBH="0") group by D_JZFS';
  with CtData.qrySum do
  begin
    Close;
    SQL.Clear;
    SQL.Add(s);
    Open;
    First;
    while not Eof do
    begin
      if FieldByName('D_JZFS').AsString = JZFS_RMB then
        ARmb := ARmb + Fields[1].AsCurrency - Fields[2].AsCurrency
      else if FieldByName('D_JZFS').AsString = JZFS_XYK then
        AXyk := AXyk + Fields[1].AsCurrency - Fields[2].AsCurrency
      else if FieldByName('D_JZFS').AsString = JZFS_ZP then
        AZp := AZp + Fields[1].AsCurrency - Fields[2].AsCurrency
      else
        AQt := AQt + Fields[1].AsCurrency - Fields[2].AsCurrency;
      Next;
    end;
    Close;
  end;

  AJzze := ARmb+AXyk+AZp+AQt;
  AJzxj := ARmb+AXyk+AZp;
  lblXfze.Caption := '消费总额:'+FormatFloat('#.##',AXfze);
  lblYdze.Caption := '预定总额:'+FormatFloat('#.##',AYdze);
  lblJzze.Caption := '结帐总额:'+FormatFloat('#.##',AJzze);
  lblRmb.Caption  := '人 民 币:'+FormatFloat('#.##',ARmb);
  lblXyk.Caption  := '信 用 卡:'+FormatFloat('#.##',AXyk);
  lblZp.Caption   := '支    票:'+FormatFloat('#.##',AZp);
  lblJzxj.Caption := '餐厅收回:'+FormatFloat('#.##',AJzxj);
  lblQt.Caption   := '其    他:'+FormatFloat('#.##',AQt);
end;

//显示出租率
procedure TCtmainForm.ShowCzl(AZs,ASy: Integer);
begin
  Series1.Clear;
  Series1.AddBar(ASy/(AZs-ASy)*100,'使用率',clRed);
  //Series1.AddPie(AZs-ASy,'空闲',cl3DLight);
  //Series1.AddPie(ASy,'使用',clSkyBlue);
end;


//消费项目定义
procedure TCtmainForm.N12Click(Sender: TObject);
begin
  Ctxfxmdy;
end;

//餐厅定义
procedure TCtmainForm.N13Click(Sender: TObject);
begin
  CtthDy;
end;

//菜单定义
procedure TCtmainForm.N14Click(Sender: TObject);
begin
  Cddmdy;
end;

//初始化
procedure TCtmainForm.FormShow(Sender: TObject);
var
  IniFile : TIniFile;
begin
  if ParamStr(1)='' then
  begin
    if (not CzyDl)or(not CtData.CheckYgqx(CZY.CzyBh,'餐饮管理系统')) then
      Application.Terminate;
  end
  else
  begin
    CZY.CzyBh := ParamStr(1);
    CZY.CzyXm := ParamStr(2);
  end;
  Caption := '餐饮管理系统(操作员:' + CZY.CzyXm+')';
  APP_DIR := ExtractFilePath(Application.ExeName);
  IniFile := TIniFile.Create(APP_DIR+'\'+INI_FILENAME);
  PORTNUM := IniFile.ReadInteger('PORT','ICPORTNUM',0);
  IniFile.Free;
  tblCtzt.Open;
  tblCtdc.Open;
  FSelect := 0;

⌨️ 快捷键说明

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