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

📄 setroomunit.pas

📁 东华休闲山庄洗浴、餐饮、客房管理系统
💻 PAS
字号:
unit SetRoomUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBClient, SUIButton, StdCtrls, Mask, DBCtrls, Grids,
  DBGrids, SUIDBCtrls, ExtCtrls, SUIImagePanel;

type
  TSetRoomForm = class(TForm)
    suiPanel1: TsuiPanel;
    lbl3: TLabel;
    lbl6: TLabel;
    lbl7: TLabel;
    lbl8: TLabel;
    suiDBGrid2: TsuiDBGrid;
    dbedttype_xh: TDBEdit;
    dbedttype_mc: TDBEdit;
    dbedttype_rs: TDBEdit;
    dbedttype_menoy: TDBEdit;
    btn1: TsuiButton;
    suiButton1: TsuiButton;
    suiButton2: TsuiButton;
    suiButton7: TsuiButton;
    suiButton8: TsuiButton;
    suiPanel2: TsuiPanel;
    lbl12: TLabel;
    lbl13: TLabel;
    lbl14: TLabel;
    lbl15: TLabel;
    lbl16: TLabel;
    suiDBGrid1: TsuiDBGrid;
    suiButton3: TsuiButton;
    suiButton4: TsuiButton;
    suiButton5: TsuiButton;
    suiButton6: TsuiButton;
    dbedtroom_num: TDBEdit;
    dbedtroom_type: TDBEdit;
    dbedtroom_state: TDBEdit;
    dbedtroom_floor: TDBEdit;
    dbedtroom_ID: TDBEdit;
    suiButton9: TsuiButton;
    suiButton10: TsuiButton;
    ds1: TClientDataSet;
    ds2: TDataSource;
    ds3: TClientDataSet;
    wdstrngfldds3room_num: TWideStringField;
    wdstrngfldds3room_type: TWideStringField;
    wdstrngfldds3room_state: TWideStringField;
    wdstrngfldds3room_floor: TWideStringField;
    wdstrngfldds3room_ID: TWideStringField;
    ds4: TDataSource;
    wdstrngfldds1type_xh: TWideStringField;
    wdstrngfldds1type_mc: TWideStringField;
    ds1type_rs: TIntegerField;
    ds1type_menoy: TFloatField;
    ClientDataSet1: TClientDataSet;
    WideStringField1: TWideStringField;
    WideStringField2: TWideStringField;
    IntegerField1: TIntegerField;
    FloatField1: TFloatField;
    DataSource1: TDataSource;
    ClientDataSet2: TClientDataSet;
    WideStringField3: TWideStringField;
    WideStringField4: TWideStringField;
    WideStringField5: TWideStringField;
    WideStringField6: TWideStringField;
    WideStringField7: TWideStringField;
    DataSource2: TDataSource;
    suiPanel3: TsuiPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    suiDBGrid3: TsuiDBGrid;
    suiButton11: TsuiButton;
    suiButton12: TsuiButton;
    suiButton13: TsuiButton;
    suiButton14: TsuiButton;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    suiButton15: TsuiButton;
    suiButton16: TsuiButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ds1AfterScroll(DataSet: TDataSet);
    procedure btn1Click(Sender: TObject);
    procedure suiButton1Click(Sender: TObject);
    procedure suiButton2Click(Sender: TObject);
    procedure suiButton7Click(Sender: TObject);
    procedure suiButton8Click(Sender: TObject);
    procedure suiButton3Click(Sender: TObject);
    procedure suiButton4Click(Sender: TObject);
    procedure suiButton5Click(Sender: TObject);
    procedure suiButton10Click(Sender: TObject);
    procedure suiButton9Click(Sender: TObject);
    procedure suiButton6Click(Sender: TObject);
    procedure dbedttype_mcKeyPress(Sender: TObject; var Key: Char);
    procedure dbedttype_rsKeyPress(Sender: TObject; var Key: Char);
    procedure dbedttype_menoyKeyPress(Sender: TObject; var Key: Char);
    procedure dbedtroom_numKeyPress(Sender: TObject; var Key: Char);
    procedure dbedtroom_floorKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  SetRoomForm: TSetRoomForm;

implementation

uses MainUnit, LoginUnit;

{$R *.dfm}

procedure TSetRoomForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  self.ds3.Close;
  self.ds1.Close;
  mainform.RefrushRoomState(0);
  mainform.Enabled:=true;
end;

procedure TSetRoomForm.ds1AfterScroll(DataSet: TDataSet);
begin
  self.ds3.Close;
  self.ds3.Open;
end;

procedure TSetRoomForm.suiButton6Click(Sender: TObject);
begin
  close;
end;

procedure TSetRoomForm.FormCreate(Sender: TObject);
begin
  self.ds1.Close;
  self.ds1.Open;
end;

procedure TSetRoomForm.btn1Click(Sender: TObject);
var
  typeid:string;
begin
  self.ds1.Append;
  loginform.ExecuteSQL('select max(type_xh)+1 from roomtype');
  typeid:=loginform.dsQuery.Fields[0].AsString;
  loginform.dsQuery.Close;
  if length(typeid)=1 then
    typeid:='0'+typeid;
  self.ds1.FieldByName('type_xh').AsString:=typeid;
  self.ds1.FieldByName('type_zd').AsString:='Y';
  self.dbedttype_mc.SetFocus;
end;

procedure TSetRoomForm.dbedttype_mcKeyPress(Sender: TObject; var Key: Char);
var
  count:integer;
begin
  if key=#13 then
    begin
      loginform.ExecuteSQL('select count(*) from roomtype where type_mc='''+self.dbedttype_mc.Text+'''');
      count:=loginform.dsQuery.Fields[0].AsInteger;
      loginform.dsQuery.Close;
      if count=0 then
        self.dbedttype_rs.SetFocus
      else
        begin
          MessageDlg('房间类型【'+self.dbedttype_mc.Text+'】信息已存在,请重新输入!',mtConfirmation, [mbYes], 0);
          self.dbedttype_mc.Clear;
          self.dbedttype_mc.SetFocus;
        end;
    end;
end;

procedure TSetRoomForm.dbedttype_rsKeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in [#78,#89,#13,#8,#110,#121]) then
    key:=#0
  else
    if key=#13 then
      self.dbedttype_menoy.SetFocus;
end;

procedure TSetRoomForm.dbedttype_menoyKeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (key in [#48..#57,#13,#8,#46]) then
    key:=#0
  else
    if key=#13 then
      self.suiButton7.SetFocus;
end;

procedure TSetRoomForm.suiButton1Click(Sender: TObject);
begin
  self.ds1.Edit;
  self.dbedttype_mc.SetFocus;
end;

procedure TSetRoomForm.suiButton8Click(Sender: TObject);
begin
  self.ds1.Cancel;
end;

procedure TSetRoomForm.suiButton2Click(Sender: TObject);
var
  typename:string;
begin
  typename:=self.dbedttype_mc.Text;
  if self.ds3.RecordCount>0 then
    MessageDlg('房间类型【'+typename+'】尚存在相关房间信息,不可执行此操作!',mtConfirmation, [mbYes], 0)
  else
    if MessageDlg('房间类型【'+typename+'】,真的要执行删除操作吗?',mtConfirmation, [mbYes,mbNo], 0)=mrYes then
      begin
        self.ds1.Delete;
        self.ds1.ApplyUpdates(0);
        loginform.ExecuteSQL('insert into log '+
                             'values('''+formatdatetime('yyyy-mm-dd hh:nn:ss',now)+
                                     ''','''+loginform.userid+''','''+LoginForm.username+
                                     ''',''房间类型【'+typename+'】删除成功'')');
      end;
end;

procedure TSetRoomForm.suiButton7Click(Sender: TObject);
var
  typename:string;
begin
  typename:=self.dbedttype_mc.Text;
  if self.ds1.State in [dsedit,dsinsert] then
    begin
      self.ds1.Post;
      self.ds1.ApplyUpdates(0);
      if self.ds1.State=dsedit then
        loginform.ExecuteSQL('insert into log '+
                             'values('''+formatdatetime('yyyy-mm-dd hh:nn:ss',now)+
                                     ''','''+loginform.userid+''','''+LoginForm.username+
                                     ''',''房间类型【'+typename+'】编辑成功'')')
      else
        loginform.ExecuteSQL('insert into log '+
                             'values('''+formatdatetime('yyyy-mm-dd hh:nn:ss',now)+
                                     ''','''+loginform.userid+''','''+LoginForm.username+
                                     ''',''房间类型【'+typename+'】添加成功'')');
    end
  else
    MessageDlg('当前数据表未处于添加或编辑状态,不可执行相关操作!',mtConfirmation, [mbYes], 0);
end;

procedure TSetRoomForm.suiButton3Click(Sender: TObject);
begin
  self.ds3.Append;
  self.ds3.FieldByName('room_type').AsString:=self.dbedttype_xh.Text;
  self.ds3.FieldByName('room_state').AsString:='可供';
  self.dbedtroom_num.SetFocus;
end;

procedure TSetRoomForm.suiButton4Click(Sender: TObject);
var
  roomnum:string;
  roomid:string;
begin
  roomnum:=self.dbedtroom_num.Text;
  roomid:=self.dbedtroom_id.Text;
  if roomid<>'' then
    MessageDlg('房间【'+roomnum+'】有宾客正在入住,不可执行此操作!',mtConfirmation, [mbYes], 0)
  else
    begin
      self.ds3.Edit;
      self.dbedtroom_num.SetFocus;
    end;
end;

procedure TSetRoomForm.suiButton5Click(Sender: TObject);
var
  roomnum:string;
  roomid:string;
begin
  roomnum:=self.dbedtroom_num.Text;
  roomid:=self.dbedtroom_id.Text;
  if roomid<>'' then
    MessageDlg('房间【'+roomnum+'】有宾客正在入住,不可执行此操作!',mtConfirmation, [mbYes], 0)
  else
    if MessageDlg('房间【'+roomnum+'】,真的要执行删除操作吗?',mtConfirmation, [mbYes,mbNo], 0)=mrYes then
      begin
        self.ds3.Delete;
        self.ds3.ApplyUpdates(0);
        loginform.ExecuteSQL('insert into log '+
                             'values('''+formatdatetime('yyyy-mm-dd hh:nn:ss',now)+
                                     ''','''+loginform.userid+''','''+LoginForm.username+
                                     ''',''房间【'+roomnum+'】删除成功'')');
      end;
end;

procedure TSetRoomForm.suiButton10Click(Sender: TObject);
var
  roomnum:string;
begin
  roomnum:=self.dbedtroom_num.Text;
  if self.ds3.State in [dsedit,dsinsert] then
    begin
      self.ds3.Post;
      self.ds3.ApplyUpdates(0);
      if self.ds3.State=dsedit then
        loginform.ExecuteSQL('insert into log '+
                             'values('''+formatdatetime('yyyy-mm-dd hh:nn:ss',now)+
                                     ''','''+loginform.userid+''','''+LoginForm.username+
                                     ''',''房间【'+roomnum+'】添加成功'')')
      else
        loginform.ExecuteSQL('insert into log '+
                             'values('''+formatdatetime('yyyy-mm-dd hh:nn:ss',now)+
                                     ''','''+loginform.userid+''','''+LoginForm.username+
                                     ''',''房间【'+roomnum+'】添加成功'')');
    end
  else
    MessageDlg('当前数据表未处于添加或编辑状态,不可执行相关操作!',mtConfirmation, [mbYes], 0);
end;

procedure TSetRoomForm.suiButton9Click(Sender: TObject);
begin
  self.ds3.Cancel;
end;

procedure TSetRoomForm.dbedtroom_numKeyPress(Sender: TObject;
  var Key: Char);
var
  count:integer;
begin
  if key=#13 then
    begin
      loginform.ExecuteSQL('select count(*) from room '+
                           'where room_type='''+self.dbedttype_xh.Text+''' and '+
                                 'room_num='''+self.dbedtroom_num.Text+'''');
      count:=loginform.dsQuery.Fields[0].AsInteger;
      loginform.dsQuery.Close;
      if count=0 then
        self.dbedtroom_floor.SetFocus
      else
        begin
          MessageDlg('房间【'+self.dbedtroom_num.Text+'】信息已存在,请重新输入!',mtConfirmation, [mbYes], 0);
          self.dbedtroom_num.Clear;
          self.dbedtroom_num.SetFocus;
        end;
    end;
end;

procedure TSetRoomForm.dbedtroom_floorKeyPress(Sender: TObject;
  var Key: Char);
begin
  if key=#13 then
    self.suiButton10.SetFocus;
end;

end.

⌨️ 快捷键说明

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