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

📄 c_kfzt.pas

📁 经典的酒店管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
{立方酒店管理系统 v1.0
 Copyright by CubicSoft
 program by ls.
 Date:20020301-20020601
 20020627 加入注释
}
unit C_Kfzt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, C_Stand, DosMove, StdCtrls, Buttons, ExtCtrls, DB, DBTables,
  ComCtrls, ImgList, Grids, DBGrids, TeeProcs, TeEngine, Chart, Series,
  Menus, ToolWin, TFlatHintUnit;

type
  //客房状态
  TKfzt = record
    AKfbh: string;
    AKfzt: string;
    AKrbh: string;
    AKrxm: string;
    AZdbh: string;
    AYjbh: string;
    ASjfj: Currency;
    AColor:TColor;
    AImage:Integer;
    AYdbz: string;
    ACjbz: string;
  end;
  //预定会场
  TYdhc = record
    AYdbh: string;
    AKrbh: string;
    AKrxm: string;
    ASyrq: TDateTime;
    ASjdm: string;
    AHcdm: string;
    AHcmc: string;
    AHczj: Currency;
    ARzbz: Boolean;
    AJsbz: string;
    ASjgq: Boolean;
    AColor: TColor;
    AImage: Integer;
  end;
  //预定餐饮
  TYdcy = record
    AYdbh: string;
    AKrbh: string;
    AKrxm: string;
    ASyrq: TDateTime;
    ASjdm: string;
    ACtbh: string;
    ACtmc: string;
    AXfje: Currency;
    ARzbz: Boolean;
    AJsbz: string;
    ASjgq: Boolean;
    AYcbz: string;
    AColor: TColor;
    AImage: Integer;
  end;
  //预定客房
  TYdkf = record
    AYdbh: string;
    AKrbh: string;
    AKrxm: string;
    ADdrq: TDateTime;
    ADdsj: TDateTime;
    ALdrq: TDateTime;
    ALdsj: TDateTime;
    AKfbh: string;
    AXfje: Currency;
    ARzbz: Boolean;
    AJsbz: string;
    AYdbz: string;
    ASjgq: Boolean;
    AColor: TColor;
    AImage: Integer;
  end;


  TKfztForm = class(TStandForm)
    tblKfzt: TTable;
    ImageList1: TImageList;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    ImageList2: TImageList;
    DBGrid1: TDBGrid;
    Chart1: TChart;
    Series1: TPieSeries;
    PopupMenu1: TPopupMenu;
    menuNbdj: TMenuItem;
    menuWbdj: TMenuItem;
    menuMfdj: TMenuItem;
    menuTddj: TMenuItem;
    N5: TMenuItem;
    menuXxxg: TMenuItem;
    N7: TMenuItem;
    menuCyxf: TMenuItem;
    tblKfztD_KFBH: TStringField;
    tblKfztD_KRBH: TStringField;
    tblKfztD_YJBH: TStringField;
    tblKfztD_SJFJ: TCurrencyField;
    tblKfztD_KFZT: TStringField;
    tblKfztD_KFBZ: TStringField;
    tblKfztD_KRSL: TSmallintField;
    tblKfztD_DHKT: TBooleanField;
    tblKfztD_BZFJ: TCurrencyField;
    tblKfztD_CWS: TSmallintField;
    tblKfztD_BJS: TIntegerField;
    tblKfztD_QJS: TIntegerField;
    tblKfztD_JJFJ: TCurrencyField;
    tblKfztD_FXBH: TStringField;
    tblKfztD_LCBH: TStringField;
    dsKfzt: TDataSource;
    tblKfztD_KRXM: TStringField;
    tblKfztD_DDRQ: TDateField;
    tblKfztD_DDSJ: TTimeField;
    tblKfztD_ZDBH: TStringField;
    menuDhfj: TMenuItem;
    menuYksy: TMenuItem;
    menuJz: TMenuItem;
    N1: TMenuItem;
    menuOkf: TMenuItem;
    menuWxf: TMenuItem;
    Timer1: TTimer;
    TabSheet5: TTabSheet;
    DBGrid2: TDBGrid;
    Panel4: TPanel;
    qryTd: TQuery;
    dsQryTd: TDataSource;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn7: TBitBtn;
    tblKrxx: TTable;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    Panel5: TPanel;
    BitBtn10: TBitBtn;
    BitBtn11: TBitBtn;
    BitBtn12: TBitBtn;
    BitBtn14: TBitBtn;
    BitBtn15: TBitBtn;
    Label7: TLabel;
    btnFtdh: TBitBtn;
    btnRefresh: TBitBtn;
    BitBtn16: TBitBtn;
    lblTime: TStaticText;
    Chart2: TChart;
    Series2: TBarSeries;
    TabSheet4: TTabSheet;
    DBGrid3: TDBGrid;
    tblXxbd: TTable;
    dsXxbd: TDataSource;
    TabSheet6: TTabSheet;
    Panel6: TPanel;
    btnYdhc: TBitBtn;
    PageControl2: TPageControl;
    TabSheet7: TTabSheet;
    TabSheet8: TTabSheet;
    TabSheet9: TTabSheet;
    sgdYdhc: TStringGrid;
    qryYdhc: TQuery;
    btnYdRefresh: TBitBtn;
    ImageList3: TImageList;
    btnYdxx: TBitBtn;
    btnHcjs: TBitBtn;
    qryYdcy: TQuery;
    sgdYdcy: TStringGrid;
    btnYdClear: TBitBtn;
    btnYdcysk: TBitBtn;
    btnYdcytd: TBitBtn;
    btnYdkfsk: TBitBtn;
    btnYdkftd: TBitBtn;
    sgdYdkf: TStringGrid;
    qryYdkf: TQuery;
    BitBtn17: TBitBtn;
    Panel7: TPanel;
    sgdKfzt: TStringGrid;
    Panel8: TPanel;
    lblTdmc1: TStaticText;
    lblTdmc2: TStaticText;
    lblTdmc3: TStaticText;
    lblTdmc4: TStaticText;
    lblTdmc5: TStaticText;
    lblTdmc6: TStaticText;
    lblTdmc7: TStaticText;
    lblTdmc8: TStaticText;
    lblTdmc9: TStaticText;
    lblTdmc10: TStaticText;
    tblFt: TTable;
    tblXxbdD_KRBH: TStringField;
    tblXxbdD_KRXM: TStringField;
    tblXxbdD_KRLX: TStringField;
    tblXxbdD_DDRQ: TDateField;
    tblXxbdD_DDSJ: TTimeField;
    tblXxbdD_LDRQ: TDateField;
    tblXxbdD_LDSJ: TTimeField;
    tblXxbdD_YWX: TStringField;
    tblXxbdD_YWM: TStringField;
    tblXxbdD_XB: TStringField;
    tblXxbdD_MZBH: TStringField;
    tblXxbdD_DQBH: TStringField;
    tblXxbdD_GBBH: TStringField;
    tblXxbdD_NZTS: TSmallintField;
    tblXxbdD_TLSY: TStringField;
    tblXxbdD_ZJBH: TStringField;
    tblXxbdD_ZJHM: TStringField;
    tblXxbdD_CSNY: TDateField;
    tblXxbdD_HCL: TStringField;
    tblXxbdD_HCQ: TStringField;
    tblXxbdD_QZBH: TStringField;
    tblXxbdD_QZYXQ: TDateField;
    tblXxbdD_ZY: TStringField;
    tblXxbdD_LXDH: TStringField;
    tblXxbdD_DWMC: TStringField;
    tblXxbdD_JTDZ: TStringField;
    tblXxbdD_JDR: TStringField;
    tblXxbdD_JDDW: TStringField;
    tblXxbdD_QDR1: TStringField;
    tblXxbdD_QDR2: TStringField;
    tblXxbdD_QDR3: TStringField;
    tblXxbdD_QDR4: TStringField;
    tblXxbdD_BZ: TStringField;
    tblXxbdD_KFBH: TStringField;
    procedure PopupMenu1Popup(Sender: TObject);
    procedure menuNbdjClick(Sender: TObject);
    procedure menuXxxgClick(Sender: TObject);
    procedure btnRefreshClick(Sender: TObject);
    procedure menuWbdjClick(Sender: TObject);
    procedure menuTddjClick(Sender: TObject);
    procedure menuDhfjClick(Sender: TObject);
    procedure menuCyyjClick(Sender: TObject);
    procedure menuCyxfClick(Sender: TObject);
    procedure menuYksyClick(Sender: TObject);
    procedure menuJzClick(Sender: TObject);
    procedure menuOkfClick(Sender: TObject);
    procedure menuWxfClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure btnFtdhClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn10Click(Sender: TObject);
    procedure BitBtn11Click(Sender: TObject);
    procedure BitBtn12Click(Sender: TObject);
    procedure tblKfztD_KFZTGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure sgdKfztDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure sgdKfztSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure menuMfdjClick(Sender: TObject);
    procedure BitBtn14Click(Sender: TObject);
    procedure BitBtn15Click(Sender: TObject);
    procedure BitBtn16Click(Sender: TObject);
    procedure sgdKfztDblClick(Sender: TObject);
    procedure DBGrid3DblClick(Sender: TObject);
    procedure btnYdRefreshClick(Sender: TObject);
    procedure btnYdhcClick(Sender: TObject);
    procedure sgdYdhcDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure btnYdxxClick(Sender: TObject);
    procedure sgdYdhcDblClick(Sender: TObject);
    procedure sgdYdhcSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sgdYdcyDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure sgdYdcySelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure sgdYdcyDblClick(Sender: TObject);
    procedure btnHcjsClick(Sender: TObject);
    procedure btnYdClearClick(Sender: TObject);
    procedure btnYdcyskClick(Sender: TObject);
    procedure btnYdcytdClick(Sender: TObject);
    procedure sgdYdkfDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure sgdYdkfDblClick(Sender: TObject);
    procedure btnYdkfskClick(Sender: TObject);
    procedure sgdYdkfSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure btnYdkftdClick(Sender: TObject);
    procedure BitBtn17Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FKfNum: Integer;
    FHcNum: Integer;
    FCyNum: Integer;
    FYdkfNum: Integer;
    FSelect: Integer;
    FHcSelect: Integer;
    FCySelect: Integer;
    FKfSelect: Integer;
    FKfzt: array of TKfzt;
    FYdhc: array of TYdhc;
    FYdcy: array of TYdcy;
    FYdkf: array of TYdkf;
    procedure KfztInit;
    procedure ShowKfzt;

    procedure ShowYjxf;

    procedure ShowRzl;
    procedure ShowYdhc;
    procedure ShowYdcy;
    procedure ShowYdkf;
  public
    { Public declarations }
    procedure Ftdh;
  end;

const
  ColNum   = 21;//客房状态列
  HcColNum = 5; //会场状态列
  CyColNum = 5; //餐饮状态列
  KfColNum = 5; //预定客房状态列
var
  KfztForm: TKfztForm;

procedure KfztShow;

implementation

uses C_Define,
     C_Nbjd,
     C_Xxxg,
     C_Wbjd,
     C_Tdjd,
     C_Sktf,
     C_Zdcx,
     C_ZdcxTd,
     C_Yksy,
     C_Skjz,
     C_Zd,
     C_HotelData,
     C_Ftdh,
     C_Main,
     C_Tdbd,
     C_Tdtf,
     C_Tdjz,
     C_Tdzd,
     C_Bjyj,
     C_Skyjbg,
     C_YxjzTd,
     C_Tdyfcx,
     C_Fjbg,
     C_Dtbqj,
     C_Yjcj,
     C_Mfjd,
     C_Ftsm,
     C_YdxxSel,
     C_Ydhc,
     C_Ydxx,
     C_Ydcysk,
     C_Ydcytd,
     C_Ydkfsk,
     C_Ydkftd,
     C_Ydsm;

{$R *.dfm}

procedure KfztShow;
begin
  with KfztForm do
  begin
    KfztInit;
    Show;
  end;
end;

//客房状态初始化
procedure TKfztForm.KfztInit;
begin
  PageControl1.ActivePageIndex := 0;

  try
    tblKfzt.Open;
    tblXxbd.Open;
    qryTd.Open;
    qryYdhc.Open;
    qryYdcy.Open;
    qryYdkf.Open;
    qryYdhc.Open;
  except
    On E:Exception do
    begin
      ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                  +#13#10
                  +'错误信息:'
                  +E.Message);
      raise;
    end;
  end;

  ShowKfzt;
  ShowRzl;
  ShowYdhc;
  ShowYdcy;
  ShowYdkf;
  ShowYjxf;
end;

//显示押金和消费
procedure TKfztForm.ShowYjxf;
var
  I: Integer;
  AKfxx: TKfxx;
  AYfje,AXfje,ADtfj: Currency;
begin
  for i:=0 to FKfNum-1 do
  begin
    //显示当天的预定客房
    if qryYdkf.Locate('D_KFBH',FKfzt[i].AKfbh,[]) then
      if qryYdkf.FieldByName('D_DDRQ').AsString=DateToStr(Date) then
        FKfzt[i].AYdbz := '★'
      else
        FKfzt[i].AYdbz := '';

    //需要催交押金的客房
    if (FKfzt[i].AKfzt=KFZT_BF)or(FKfzt[i].AKfzt=KFZT_TD) then
    begin
      AKfxx := HotelData.GetKfxx(FKfzt[i].AKfbh);

      ADtfj := GetDtfj(AKfxx.ADdsj,Time,AKfxx.AKfbz,AKfxx.ASjfj);

      AYfje := HotelData.SumJe('select sum(D_YFJE) from KRYJ where (D_YJBH="'
                               +AKfxx.AYjbh+'")and(D_FKFS="'+FKFS_RMB+'")');
      AXfje := HotelData.SumJe('select sum(D_XFJE) from KRZD where (D_ZDBH="'
                               +AKfxx.AZdbh+'")and(D_HH<>0)');
      if (AYfje<>0)and((AXfje+ADtfj)>(AYfje-100)) then
        FKfzt[i].ACjbz := '¥'
      else
        FKfzt[i].ACjbz := '';
    end;
  end;
  sgdKfzt.Refresh;
end;

//显示客房状态
procedure TKfztForm.ShowKfzt;
var
  I: Integer;
begin
  Screen.Cursor := crHourGlass;
  tblKfzt.DisableControls;
  tblKfzt.Refresh;

  FKfNum := tblKfzt.RecordCount;//客房总数
  SetLength(FKfzt,FKfNum);
  sgdKfzt.ColCount := ColNum;
  sgdKfzt.RowCount := (FKfNum div ColNum) + 1;

  tblKfzt.First;
  i := 0;
  while not tblKfzt.Eof do
  begin
    FKfzt[i].AKfbh := tblKfztD_KFBH.Value;
    FKfzt[i].AKfzt := tblKfztD_KFZT.Value;
    FKfzt[i].AKrbh := tblKfztD_KRBH.Value;
    FKfzt[i].AKrxm := tblKfztD_KRXM.Value;
    FKfzt[i].ASjfj := tblKfztD_SJFJ.Value;
    FKfzt[i].AYjbh := tblKfztD_YJBH.Value;
    FKfzt[i].AYdbz := '';
    FKfzt[i].ACjbz := '';

    if tblKfztD_KFZT.Value=KFZT_OK then
    begin
      FKfzt[i].AColor := COLOR_OK;
      FKfzt[i].AImage := 0;
    end;

    if tblKfztD_KFZT.Value=KFZT_BF then
    begin
      FKfzt[i].AColor := COLOR_BF;
      FKfzt[i].AImage := 1;
    end;

    if tblKfztD_KFZT.Value=KFZT_TD then
    begin
      FKfzt[i].AColor := COLOR_TD;
      FKfzt[i].AImage := 2;
    end;

    if tblKfztD_KFZT.Value=KFZT_WX then
    begin
      FKfzt[i].AColor := COLOR_WX;
      FKfzt[i].AImage := 3;
    end;

    if tblKfztD_KFZT.Value=KFZT_ZK then
    begin
      FKfzt[i].AColor := COLOR_ZK;
      FKfzt[i].AImage := 5;
    end;

    if tblKfztD_KFZT.Value=KFZT_MF then
    begin
      FKfzt[i].AColor := COLOR_MF;
      FKfzt[i].AImage := 4;
    end;
    Inc(i);
    tblKfzt.Next;
  end;

  tblKfzt.EnableControls;

  //团队信息刷新

⌨️ 快捷键说明

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