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

📄 c_ydcysk.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, C_StdJd, DosMove, StdCtrls, Buttons, ExtCtrls, DB, DBTables,
  Mask, DBCtrls, ComCtrls, C_Define, DateUtils;

type
  TYdcyskForm = class(TStdJdForm)
    tblYdcy: TTable;
    dsYdcy: TDataSource;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    DBComboBox1: TDBComboBox;
    ListView1: TListView;
    tblCtzt: TTable;
    Label10: TLabel;
    lblKrxm: TLabel;
    Label12: TLabel;
    lblLxr: TLabel;
    btnYdqr: TBitBtn;
    btnYdqx: TBitBtn;
    lblState: TStaticText;
    Label11: TLabel;
    Label13: TLabel;
    RadioGroup1: TRadioGroup;
    Label6: TLabel;
    DBMemo1: TDBMemo;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    Label7: TLabel;
    edtCtbh: TEdit;
    btnSelect: TBitBtn;
    tblYdcyD_YDBH: TStringField;
    tblYdcyD_CTBH: TStringField;
    tblYdcyD_CTMC: TStringField;
    tblYdcyD_KRBH: TStringField;
    tblYdcyD_KRXM: TStringField;
    tblYdcyD_YDRQ: TDateTimeField;
    tblYdcyD_SYRQ: TDateTimeField;
    tblYdcyD_SYSJ: TDateTimeField;
    tblYdcyD_SJDM: TStringField;
    tblYdcyD_YCBZ: TStringField;
    tblYdcyD_YCLX: TIntegerField;
    tblYdcyD_RS: TIntegerField;
    tblYdcyD_XFSL: TFloatField;
    tblYdcyD_XFJE: TFloatField;
    tblYdcyD_YDBZ: TStringField;
    tblYdcyD_RZBZ: TStringField;
    tblYdcyD_KTBZ: TStringField;
    tblYdcyD_JSBZ: TStringField;
    tblYdcyD_BZ: TBlobField;
    tblYdcyD_CZYXM: TStringField;
    tblYdcyD_DJ: TFloatField;
    btnPrint: TBitBtn;
    Label8: TLabel;
    lblLxdh: TLabel;
    procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure tblYdcyNewRecord(DataSet: TDataSet);
    procedure btnOKClick(Sender: TObject);
    procedure tblYdcyBeforePost(DataSet: TDataSet);
    procedure btnCancClick(Sender: TObject);
    procedure DBEdit3Exit(Sender: TObject);
    procedure btnYdqrClick(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure btnSelectClick(Sender: TObject);
    procedure btnPrintClick(Sender: TObject);
    procedure btnYdqxClick(Sender: TObject);
  private
    { Private declarations }
    FKrbh: string;
    FYdbh: string;
    FYdrq: TDateTime;
    FSyrq: TDateTime;
    FSysj: TDateTime;
    FSjdm: string;
    FXfje: Currency;
    FYcbz: string;
    FRzbz: string;
    FBz  : TStringList;
    IsAppend: Boolean;
    procedure ShowCtbh;
    procedure ShowYdctbh;
    procedure ShowState;
    function  GetCtbh(const s: string): string;
    function  GetCtmc(const s: string): string;
    procedure UpdateCtbh(const ACtbh,ACtmc: string);
    function  IsValid: Boolean;
  public
    { Public declarations }
  end;

var
  YdcyskForm: TYdcyskForm;

procedure YdcyskNew(const AKrbh: string);
procedure YdcyskEdit(const AKrbh,AYdbh: string);

implementation

uses C_HotelData, C_YdcyskPrint;

{$R *.dfm}

//新增预定
procedure YdcyskNew(const AKrbh: string);
begin
  YdcyskForm := TYdcyskForm.Create(Application);
  try
    with YdcyskForm do
    begin
      //初始化
      FKrbh    := AKrbh;
      FYdrq    := Date;
      FSyrq    := Today;
      FSysj    := Time;//EnCodeTime(7,0,0,0);
      FSjdm    := Morning;
      IsAppend := True;
      lblKrxm.Caption := HotelData.FindUserBh('YDXX','D_KRXM','D_KRBH',FKrbh);
      lblLxr.Caption  := HotelData.FindUserBh('YDXX','D_DWMC','D_KRBH',FKrbh);
      lblLxdh.Caption := HotelData.FindUserBh('YDXX','D_LXDH','D_KRBH',FKrbh);
      //显示餐厅编号
      ShowCtbh;

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

      tblYdcy.Insert;

      //显示预定状态
      ShowState;

      ShowModal;
    end;
  finally
    YdcyskForm.tblYdcy.Close;
    YdcyskForm.Free;
  end;
end;

//编辑
procedure YdcyskEdit(const AKrbh,AYdbh: string);
begin
  YdcyskForm := TYdcyskForm.Create(Application);
  try
    with YdcyskForm do
    begin
      //初始化
      FKrbh    := AKrbh;
      FYdrq    := Date;
      FSyrq    := Date;
      FSysj    := Time;
      FSjdm    := Morning;
      FYdbh    := AYdbh;
      IsAppend := False;
      lblKrxm.Caption := HotelData.FindUserBh('YDXX','D_KRXM','D_KRBH',FKrbh);
      lblLXr.Caption  := HotelData.FindUserBh('YDXX','D_DWMC','D_KRBH',FKrbh);
      lblLxdh.Caption := HotelData.FindUserBh('YDXX','D_LXDH','D_KRBH',FKrbh);

      ShowCtbh;

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

      tblYdcy.Filter   := 'D_YDBH='''+AYdbh+'''';
      tblYdcy.Filtered := True;

      //显示已经预定的餐厅
      ShowYdctbh;

      //定位到总单
      if tblYdcy.FindKey([AYdbh,'0']) then
        tblYdcy.Edit;

      ShowState;

      //定餐标准
      RadioGroup1.ItemIndex := tblYdcyD_YCLX.Value;
      RadioGroup1Click(nil);

      ShowModal;
    end;
  finally
    YdcyskForm.tblYdcy.Filter   := '';
    YdcyskForm.tblYdcy.Filtered := False;
    YdcyskForm.tblYdcy.Close;
    YdcyskForm.Free;
  end;
end;

//显示预定状态
procedure TYdcyskForm.ShowState;
begin
  if tblYdcyD_RZBZ.AsBoolean then
  begin
    lblState.Caption    := '已确认';
    lblState.Font.Color := clGreen;
    FRzbz := 'T';
  end
  else
  begin
    lblState.Caption    := '未确认';
    lblState.Font.Color := clYellow;
    FRzbz := 'F';
  end;

  btnYdqr.Enabled := not tblYdcyD_RZBZ.AsBoolean;
  //btnYdqx.Enabled := btnYdqr.Enabled;
end;


//显示已经预定的餐厅
procedure TYdcyskForm.ShowYdctbh;
var
  i: Integer;
begin
  tblYdcy.First;
  while not tblYdcy.Eof do
  begin
    for i:=0 to ListView1.Items.Count - 1 do
      if GetCtbh(ListView1.Items[i].Caption)=tblYdcyD_CTBH.Value then
        ListView1.Items[i].Checked := True;
    tblYdcy.Next;
  end;
end;

//显示餐厅编号
procedure TYdcyskForm.ShowCtbh;
var
  ListItem: TListItem;
  aCtmc : string;
begin
  try
    try
      tblCtzt.Open;
    except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
    end;

    ListView1.Items.BeginUpdate;
    ListView1.Items.Clear;

    tblCtzt.First;
    while not tblCtzt.Eof do
    begin
      //edit by ls .20021210
      aCtmc := tblCtzt.FieldbyName('D_CTMC').AsString;
      if (Copy(tblCtzt.FieldByName('D_CTMC').AsString,1,6)='星海厅') then
      begin
         aCtmc := '星海厅';
         if tblCtzt.FieldByName('D_CTMC').AsString > '星海厅01' then
         begin
           tblCtzt.Next;
           Continue;
         end;
      end else
      if (Copy(tblCtzt.FieldByName('D_CTMC').AsString,1,6)='凌云厅') then
      begin
         aCtmc := '凌云厅';
         if tblCtzt.FieldByName('D_CTMC').AsString > '凌云厅01' then
         begin
           tblCtzt.Next;
           Continue;
         end;
      end else
      if (Copy(tblCtzt.FieldByName('D_CTMC').AsString,1,6)='千禧厅') then
      begin
         aCtmc := '千禧厅';
         if tblCtzt.FieldByName('D_CTMC').AsString > '千禧厅01' then
         begin
           tblCtzt.Next;
           Continue;
         end;
      end;

      ListItem := ListView1.Items.Add;
      //ListItem.Caption := tblCtzt.FieldByName('D_CTBH').AsString
        //                  +'|'+tblCtzt.FieldByName('D_CTMC').AsString;
      ListItem.Caption := tblCtzt.FieldByName('D_CTBH').AsString
                          +'|'+aCtmc;

      tblCtzt.Next;
    end;

  finally
    tblCtzt.Close;
    ListView1.Items.EndUpdate;
  end;
end;

procedure TYdcyskForm.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  inherited;
  if Selected then
    Item.Checked := True;
end;

procedure TYdcyskForm.tblYdcyNewRecord(DataSet: TDataSet);
begin
  inherited;
  tblYdcyD_KRBH.Value := FKrbh;
  tblYdcyD_YDRQ.Value := FYdrq;
  tblYdcyD_SYRQ.Value := FSyrq;
  tblYdcyD_SYSJ.Value := FSysj;
  tblYdcyD_SJDM.Value := FSjdm;
  tblYdcyD_JSBZ.Value := JS_NO;
  tblYdcyD_YDBZ.Value := YDCY_SK;
  tblYdcyD_XFSL.Value := 1;
  tblYdcyD_KRXM.Value := lblKrxm.Caption;
  tblYdcyD_CZYXM.Value:= CZY.CzyXm;
end;

//获取餐厅编号
function TYdcyskForm.GetCtbh(const s: string): string;
var
  p: Integer;
begin
  p := Pos('|',s);

⌨️ 快捷键说明

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