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

📄 ydeditunit.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBClient, Mask, SUIEdit, ComCtrls, StdCtrls, SUIComboBox,
  Grids, DBGrids, SUIImagePanel, SUIGroupBox, SUIListBox, SUIButton,
  ExtCtrls;

type
  TYDEditForm = class(TForm)
    suiPanel1: TsuiPanel;
    Label15: TLabel;
    Label1: TLabel;
    Label16: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label3: TLabel;
    Label17: TLabel;
    suiButton1: TsuiButton;
    suiButton2: TsuiButton;
    suiListBox2: TsuiListBox;
    btn3: TsuiButton;
    btn4: TsuiButton;
    suiGroupBox1: TsuiGroupBox;
    dbgrd1: TDBGrid;
    suiGroupBox2: TsuiGroupBox;
    DBGrid1: TDBGrid;
    suiEdit1: TsuiEdit;
    suiEdit2: TsuiEdit;
    cbb1: TsuiComboBox;
    dtp1: TDateTimePicker;
    suiMaskEdit1: TsuiMaskEdit;
    DateTimePicker1: TDateTimePicker;
    suiMaskEdit2: TsuiMaskEdit;
    DateTimePicker2: TDateTimePicker;
    suiMaskEdit3: TsuiMaskEdit;
    cbb2: TsuiComboBox;
    ds2: TDataSource;
    ClientDataSet1: TClientDataSet;
    ClientDataSet2: TClientDataSet;
    DataSource1: TDataSource;
    ClientDataSet3: TClientDataSet;
    procedure suiButton2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure suiEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure suiEdit2KeyPress(Sender: TObject; var Key: Char);
    procedure cbb1KeyPress(Sender: TObject; var Key: Char);
    procedure dtp1KeyPress(Sender: TObject; var Key: Char);
    procedure suiMaskEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
    procedure suiMaskEdit2KeyPress(Sender: TObject; var Key: Char);
    procedure DateTimePicker2KeyPress(Sender: TObject; var Key: Char);
    procedure suiMaskEdit3KeyPress(Sender: TObject; var Key: Char);
    procedure cbb2Select(Sender: TObject);
    procedure suiListBox2Click(Sender: TObject);
    procedure dbgrd1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure btn3Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
    procedure cbb1DropDown(Sender: TObject);
    procedure cbb2DropDown(Sender: TObject);
    procedure dtp1Change(Sender: TObject);
    procedure suiButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    id:string;
  end;

var
  YDEditForm: TYDEditForm;

implementation

uses LoginUnit, MainUnit, YDGLUnit, AbortUnit;

{$R *.dfm}

procedure TYDEditForm.suiButton2Click(Sender: TObject);
begin
  close;
end;

procedure TYDEditForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  loginform.ExecuteSQL('delete from roomselect');
  self.ClientDataSet3.Close;
  self.ClientDataSet1.Close;
  self.ClientDataSet2.Close;
  YDGLForm.Enabled:=true;
end;

procedure TYDEditForm.FormCreate(Sender: TObject);
var
  time1,time2,time3:string;
  temp:string;
  roomtype,roomnum:string;
  state:string;
  index:Integer;
begin
  id:=YDGLForm.ClientDataSet1.fieldbyname('id').AsString;
  state:=YDGLForm.ClientDataSet1.fieldbyname('state').AsString;
  suiPanel1.Caption:='预订单号:'+id+'【'+state+'】';
  loginform.ExecuteSQL('select * from reserve where id='''+id+'''');
  self.suiEdit1.Text:=loginform.dsQuery.fieldbyname('name').AsString;
  self.suiEdit2.Text:=loginform.dsQuery.fieldbyname('phone').AsString;
  self.cbb1.Text:=loginform.dsQuery.fieldbyname('source').AsString;
  time1:=loginform.dsQuery.fieldbyname('time1').AsString;
  time2:=loginform.dsQuery.fieldbyname('time2').AsString;
  time3:=loginform.dsQuery.fieldbyname('time3').AsString;
  loginform.dsQuery.First;
  while not LoginForm.dsQuery.Eof do
    begin
      temp:=temp+loginform.dsQuery.fieldbyname('roomtype').AsString+':'+
                 loginform.dsQuery.fieldbyname('roomnum').AsString+'@';
      LoginForm.dsQuery.Next;
    end;
  LoginForm.dsQuery.Close;
  self.dtp1.DateTime:=strtodatetime(copy(time1,1,pos(' ',time1)-1));
  delete(time1,1,pos(' ',time1));
  self.suiMaskEdit1.Text:=time1;
  self.DateTimePicker1.DateTime:=strtodatetime(copy(time2,1,pos(' ',time2)-1));
  delete(time2,1,pos(' ',time2));
  self.suiMaskEdit2.Text:=time2;
  self.DateTimePicker2.DateTime:=strtodatetime(copy(time3,1,pos(' ',time3)-1));
  delete(time3,1,pos(' ',time3));
  self.suiMaskEdit3.Text:=time3;
  self.cbb2.Clear;
  self.suiListBox2.Items.Clear;
  loginform.ExecuteSQL('delete from roomselect');
  index:=1;
  while Pos('@',temp)>0 do
    begin
      roomnum:=Copy(temp,1,Pos('@',temp)-1);
      roomtype:=Copy(roomnum,1,Pos(':',roomnum)-1);
      Delete(roomnum,1,Pos(':',roomnum));
      loginform.ExecuteSQL('insert into roomselect(id,roomtype,roomnum) '+
                           'values('''+inttostr(index)+''','''+roomtype+''','''+roomnum+''')');
      Delete(temp,1,Pos('@',temp));
      inc(index);
    end;
  self.suiGroupBox1.Caption:='已预订宾客信息';
  self.ClientDataSet1.Close;
  self.ClientDataSet1.Open;
end;

procedure TYDEditForm.FormActivate(Sender: TObject);
begin
  self.suiEdit1.SetFocus;
end;

procedure TYDEditForm.suiEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    begin
      self.ClientDataSet3.Close;
      self.ClientDataSet3.Open;
      self.ClientDataSet3.Filter:='name='''+suiEdit1.Text+'''';
      self.ClientDataSet3.Filtered:=True;
      if ClientDataSet3.RecordCount>0 then
        begin
          suiEdit2.Text:=ClientDataSet3.fieldbyname('phone').AsString;
          cbb1.Text:=ClientDataSet3.fieldbyname('source').AsString;
        end;
      self.ClientDataSet3.Close;
      self.suiEdit2.SetFocus;
    end;
end;

procedure TYDEditForm.suiEdit2KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in [#48..#57,#45,#13,#8]) then
    key:=#0
  else
    if key=#13 then
      cbb1.SetFocus;
end;

procedure TYDEditForm.cbb1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    self.dtp1.SetFocus;
end;

procedure TYDEditForm.cbb1DropDown(Sender: TObject);
begin
  loginform.AddCombobox(cbb1,'select name from guestsource');
end;

procedure TYDEditForm.dtp1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    self.suiMaskEdit1.SetFocus;
end;

procedure TYDEditForm.suiMaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    self.DateTimePicker1.SetFocus;
end;

procedure TYDEditForm.DateTimePicker1KeyPress(Sender: TObject;
  var Key: Char);
begin
  if key=#13 then
    self.suiMaskEdit2.SetFocus;
end;

procedure TYDEditForm.suiMaskEdit2KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    self.DateTimePicker2.SetFocus;
end;

procedure TYDEditForm.DateTimePicker2KeyPress(Sender: TObject;
  var Key: Char);
begin
  if key=#13 then
    self.suiMaskEdit3.SetFocus;
end;

procedure TYDEditForm.suiMaskEdit3KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    self.cbb2.SetFocus;
end;

procedure TYDEditForm.dtp1Change(Sender: TObject);
begin
  self.DateTimePicker1.DateTime:=self.dtp1.DateTime+5;
  self.DateTimePicker2.DateTime:=self.dtp1.DateTime+3;
end;

procedure TYDEditForm.cbb2DropDown(Sender: TObject);
begin
  loginform.AddCombobox(cbb2,'select type_mc from roomtype');
end;

procedure TYDEditForm.cbb2Select(Sender: TObject);
begin
  suiListBox2.Items.Clear;
  suiListBox2.Items.BeginUpdate;
  loginform.ExecuteSQL('select roomtype.type_mc,room.room_num from room,roomtype '+
                       'where (room.room_type=roomtype.type_xh) and '+
                             '((room.room_state=''可供'') or (room.room_state=''预订'')) and '+
                             '(room.room_num<>'''+mainform.roomnum+''') and '+
                             '(roomtype.type_mc='''+cbb2.Text+''')'+
                       'order by room.room_num');
  LoginForm.dsQuery.First;
  while not LoginForm.dsQuery.Eof do
    begin
      suiListBox2.Items.Add(LoginForm.dsQuery.Fields[0].AsString+':'+LoginForm.dsQuery.Fields[1].AsString);
      LoginForm.dsQuery.Next;
    end;
  suiListBox2.Items.EndUpdate;
end;

procedure TYDEditForm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if DBGrid1.DataSource.DataSet.RecNo mod 2 = 0 theN
    DBGrid1.Canvas.Brush.Color:=clSilver
  else
    DBGrid1.Canvas.Brush.Color:=clYellow;
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure TYDEditForm.dbgrd1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if dbgrd1.DataSource.DataSet.RecNo mod 2 = 0 theN
    dbgrd1.Canvas.Brush.Color:=clSilver
  else
    dbgrd1.Canvas.Brush.Color:=clYellow;
  dbgrd1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure TYDEditForm.btn3Click(Sender: TObject);
var
  index:Integer;
  roomnum:string;
  roomtype:string;
  temp:string;
begin
  for index:=suiListBox2.Items.Count-1 downto 0 do
    if suiListBox2.Selected[index] then
      begin
        temp:=suiListBox2.Items.Strings[index]+'@'+temp;
        suiListBox2.Items.Delete(index);
      end;
  if temp<>'' then
    begin
      loginform.ExecuteSQL('select count(*)+1 from roomselect');
      index:=loginform.dsQuery.Fields[0].AsInteger;
      LoginForm.dsQuery.Close;
      while Pos('@',temp)>0 do
        begin
          roomnum:=Copy(temp,1,Pos('@',temp)-1);
          roomtype:=Copy(roomnum,1,Pos(':',roomnum)-1);
          Delete(roomnum,1,Pos(':',roomnum));
          loginform.ExecuteSQL('insert into roomselect(id,roomtype,roomnum) '+
                               'values('''+inttostr(index)+''','''+roomtype+''','''+roomnum+''')');
          Delete(temp,1,Pos('@',temp));
          inc(index);
        end;
    end;
  ClientDataSet1.Close;
  ClientDataSet1.Open;
end;

procedure TYDEditForm.btn4Click(Sender: TObject);
var
  id,roomtype,roomnum:string;
  temp:string;
  index:Integer;
begin
  if (ClientDataSet1.RecordCount>0) then
    begin
      id:=ClientDataSet1.fieldbyname('id').AsString;
      roomtype:=ClientDataSet1.fieldbyname('roomtype').AsString;
      roomnum:=ClientDataSet1.fieldbyname('roomnum').AsString;
      LoginForm.ExecuteSQL('delete from roomselect where id='''+id+'''');
      LoginForm.ExecuteSQL('select id from roomselect order by id');
      LoginForm.dsQuery.First;
      while not LoginForm.dsQuery.Eof do
        begin
          temp:=temp+loginform.dsQuery.Fields[0].AsString+'@';
          LoginForm.dsQuery.Next;
        end;
      LoginForm.dsQuery.Close;
      index:=1;
      while Pos('@',temp)>0 do
        begin
          id:=Copy(temp,1,Pos('@',temp)-1);
          LoginForm.ExecuteSQL('update roomselect set id='''+inttostr(index)+''' where id='''+id+'''');
          Delete(temp,1,Pos('@',temp));
          Inc(index);
        end;
      suiListBox2.Items.Add(roomtype+':'+roomnum);
      suiListBox2.Sorted:=true;
    end;
  ClientDataSet1.Close;
  ClientDataSet1.Open;
end;

procedure TYDEditForm.suiListBox2Click(Sender: TObject);
var
  roomnum:string;
begin
  roomnum:=suiListBox2.Items.Strings[self.suiListBox2.itemindex];
  Delete(roomnum,1,Pos(':',roomnum));
  self.ClientDataSet2.Close;
  self.ClientDataSet2.Open;
  self.ClientDataSet2.Filter:='roomnum='''+roomnum+''' and state<>''已入住''';
  self.ClientDataSet2.Filtered:=true;
  self.suiGroupBox1.Caption:='已预订'+roomnum+'的宾客';
end;

procedure TYDEditForm.suiButton1Click(Sender: TObject);
var
  temp:string;
  roomtype,roomnum:string;
  time1,time2,time3,time4:string;
begin
  LoginForm.ExecuteSQL('select roomnum from reserve where id='''+id+'''');
  LoginForm.dsQuery.First;
  while not LoginForm.dsQuery.Eof do
    begin
      temp:=temp+loginform.dsQuery.Fields[0].AsString+'@';
      LoginForm.dsQuery.Next;
    end;
  LoginForm.dsQuery.Close;
  while Pos('@',temp)>0 do
    begin
      roomnum:=Copy(temp,1,Pos('@',temp)-1);
      loginform.ExecuteSQL('update room set room_state=''可供'' where room_num='''+roomnum+'''');
      Delete(temp,1,Pos('@',temp));
    end;
  temp:='';
  LoginForm.ExecuteSQL('delete from reserve where id='''+id+'''');
  LoginForm.ExecuteSQL('select roomtype,roomnum from roomselect order by id');
  LoginForm.dsQuery.First;
  while not LoginForm.dsQuery.Eof do
    begin
      temp:=temp+loginform.dsQuery.Fields[0].AsString+':'+loginform.dsQuery.Fields[1].AsString+'@';
      LoginForm.dsQuery.Next;
    end;
  LoginForm.dsQuery.Close;
  time1:=formatdatetime('yyyy-mm-dd',self.dtp1.Date)+' '+self.suiMaskEdit1.Text;
  time2:=formatdatetime('yyyy-mm-dd',self.DateTimePicker1.Date)+' '+self.suiMaskEdit2.Text;
  time3:=formatdatetime('yyyy-mm-dd',self.DateTimePicker2.Date)+' '+self.suiMaskEdit3.Text;
  time4:=formatdatetime('yyyy-mm-dd hh:nn:ss',now);
  while Pos('@',temp)>0 do
    begin
      roomnum:=Copy(temp,1,Pos('@',temp)-1);
      roomtype:=Copy(roomnum,1,Pos(':',roomnum)-1);
      Delete(roomnum,1,Pos(':',roomnum));
      LoginForm.ExecuteSQL('insert into reserve '+
                           'values('''+id+''','''+cbb1.Text+''','''+suiedit1.Text+''','''+suiedit2.Text+
                                   ''','''+roomtype+''','''+roomnum+''',''预订中'+
                                   ''','''+time1+''','''+time2+''','''+time3+''','''+time4+''')');
      loginform.ExecuteSQL('update room set room_state=''预订'' where room_num='''+roomnum+'''');
      Delete(temp,1,Pos('@',temp));
    end;
  loginform.ExecuteSQL('insert into log '+
                       'values('''+time4+''','''+loginform.userid+''','''+LoginForm.username+
                               ''',''宾客【'+suiedit1.Text+'】预订单号【'+id+'】预订信息编辑成功'')');
  MessageDlg('当前宾客【'+suiedit1.Text+'】预订单号【'+id+'】预订信息编辑成功!',mtConfirmation, [mbYes], 0);
  close;
end;

end.

⌨️ 快捷键说明

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