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

📄 hbzdunit.pas

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

interface

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

type
  THBZDForm = class(TForm)
    suiPanel2: TsuiPanel;
    dbgrd1: TDBGrid;
    lbl1: TLabel;
    suiEdit1: TsuiEdit;
    ds1: TDataSource;
    ds2: TClientDataSet;
    Label1: TLabel;
    suiArrowButton2: TsuiArrowButton;
    suiArrowButton1: TsuiArrowButton;
    DataSource1: TDataSource;
    ClientDataSet1: TClientDataSet;
    suiPanel1: TsuiPanel;
    Label2: TLabel;
    Label3: TLabel;
    DBGrid1: TDBGrid;
    btn1: TsuiButton;
    btn2: TsuiButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ds2AfterScroll(DataSet: TDataSet);
    procedure FormActivate(Sender: TObject);
    procedure ClientDataSet1AfterScroll(DataSet: TDataSet);
    procedure suiArrowButton1Click(Sender: TObject);
    procedure suiArrowButton2Click(Sender: TObject);
    procedure suiEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure btn1Click(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);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  HBZDForm: THBZDForm;

implementation

uses MainUnit, LoginUnit;

{$R *.dfm}

procedure THBZDForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  self.ds2.Close;
  self.ClientDataSet1.Close;
  LoginForm.ExecuteSQL('delete from housetemp');
  LoginForm.ExecuteSQL('delete from housetest');
  MainForm.RefrushRoomState(0);
  MainForm.Enabled:=true;
end;

procedure THBZDForm.btn2Click(Sender: TObject);
begin
  Close;
end;

procedure THBZDForm.FormCreate(Sender: TObject);
var
  room:string;
  sql:string;
  str:string;
begin
  self.suiEdit1.Clear;
  sql:='insert into housetemp select * from house '+
                             'where (id in (select distinct room_id from room where room_id<>'''')) ';
  LoginForm.ExecuteSQL('select distinct memozs from house '+
                       'where id in (select distinct room_id from room where room_id<>'''')');
  loginform.dsQuery.First;
  while not LoginForm.dsQuery.Eof do
    begin
      room:=LoginForm.dsQuery.Fields[0].AsString;
      room:=Copy(room,1,Pos('@',room)-1);
      str:=str+'(room='''+room+''') or ';
      LoginForm.dsQuery.Next;
    end;
  LoginForm.dsQuery.Close;
  delete(str,length(str)-3,4);
  sql:=sql+' and ('+str+')';
  LoginForm.ExecuteSQL(sql);
  if MainForm.roomnum<>'' then
    begin
      LoginForm.ExecuteSQL('insert into housetest select * from housetemp '+
                           'where id in (select distinct room_id from room where room_num='''+MainForm.roomnum+''')');
      LoginForm.ExecuteSQL('delete from housetemp '+
                           'where id in (select distinct room_id from room where room_num='''+MainForm.roomnum+''')');

    end;
  Self.ds2.Close;
  self.ds2.CommandText:='select * from housetemp order by room';
  self.ds2.Open;
  Self.ClientDataSet1.Close;
  self.ClientDataSet1.CommandText:='select * from housetest order by room';
  self.ClientDataSet1.Open;
end;

procedure THBZDForm.ds2AfterScroll(DataSet: TDataSet);
begin
  Self.suiEdit1.Text:=ds2.fieldbyname('room').AsString;
  self.Label1.Caption:=ds2.fieldbyname('memozs').AsString;
end;

procedure THBZDForm.FormActivate(Sender: TObject);
begin
  Self.suiEdit1.SetFocus;
end;

procedure THBZDForm.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin
  self.Label3.Caption:=ClientDataSet1.fieldbyname('room').AsString+':'+ClientDataSet1.fieldbyname('id').AsString;
end;

procedure THBZDForm.suiArrowButton1Click(Sender: TObject);
begin
  LoginForm.ExecuteSQL('insert into housetest select * from housetemp '+
                       'where id in (select distinct room_id from room '+
                                    'where room_num='''+self.ds2.fieldbyname('room').AsString+''')');
  LoginForm.ExecuteSQL('delete from housetemp '+
                       'where id in (select distinct room_id from room '+
                                    'where room_num='''+self.ds2.fieldbyname('room').AsString+''')');
  Self.ds2.Close;
  self.ds2.CommandText:='select * from housetemp order by room';
  self.ds2.Open;
  if self.ds2.RecordCount=0 then
    self.Label1.Caption:='';
  Self.ClientDataSet1.Close;
  self.ClientDataSet1.CommandText:='select * from housetest order by room';
  self.ClientDataSet1.Open;
  if self.ClientDataSet1.RecordCount=0 then
    self.Label3.Caption:='';
end;

procedure THBZDForm.suiArrowButton2Click(Sender: TObject);
begin
  LoginForm.ExecuteSQL('insert into housetemp select * from housetest '+
                       'where id in (select distinct room_id from room '+
                                    'where room_num='''+self.ClientDataSet1.fieldbyname('room').AsString+''')');
  LoginForm.ExecuteSQL('delete from housetest '+
                       'where id in (select distinct room_id from room '+
                                    'where room_num='''+self.ClientDataSet1.fieldbyname('room').AsString+''')');
  Self.ds2.Close;
  self.ds2.CommandText:='select * from housetemp order by room';
  self.ds2.Open;
  if self.ds2.RecordCount=0 then
    self.Label1.Caption:='';
  Self.ClientDataSet1.Close;
  self.ClientDataSet1.CommandText:='select * from housetest order by room';
  self.ClientDataSet1.Open;
  if self.ClientDataSet1.RecordCount=0 then
    self.Label3.Caption:='';
end;

procedure THBZDForm.suiEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    Self.ds2.Locate('room',suiEdit1.Text,[]);
end;

procedure THBZDForm.btn1Click(Sender: TObject);
var
  id,room:string;
  list:string;
  memo:string;
  roomnum:string;
begin
  if self.Label3.Caption='' then
    exit;
  id:=self.Label3.Caption;
  room:=Copy(id,1,pos(':',id)-1);
  roomnum:=room+';';
  Delete(id,1,Pos(':',id));
  self.ClientDataSet1.First;
  while not ClientDataSet1.Eof do
    begin
      memo:=ClientDataSet1.fieldbyname('memozs').AsString;
      Delete(memo,1,9);
      if Self.ClientDataSet1.FieldByName('room').AsString<>room then
        begin
          roomnum:=roomnum+Self.ClientDataSet1.FieldByName('room').AsString+';';
          list:=list+memo;
        end
      else
        list:=memo+list;
      loginform.ExecuteSQL('update consume set Lbxf_xfbh='''+id+''' '+
                           'where Lbxf_xfbh='''+Self.ClientDataSet1.FieldByName('id').AsString+'''');
      loginform.ExecuteSQL('update house set id='''+id+''' '+
                           'where id='''+Self.ClientDataSet1.FieldByName('id').AsString+'''');
      loginform.ExecuteSQL('update room set room_id='''+id+''' '+
                           'where room_id='''+Self.ClientDataSet1.FieldByName('id').AsString+'''');
      loginform.ExecuteSQL('update yjgl set yj_bh='''+id+''' '+
                           'where yj_bh='''+Self.ClientDataSet1.FieldByName('id').AsString+'''');
      ClientDataSet1.Next;
    end;
  loginform.ExecuteSQL('update house set memozs=''合并账单:'+list+''' where id='''+id+'''');
  delete(roomnum,length(roomnum),1);
  loginform.ExecuteSQL('insert into log '+
                       'values('''+formatdatetime('yyyy-mm-dd hh:nn:ss',now)+
                               ''','''+loginform.userid+''','''+LoginForm.username+
                               ''',''将房间【'+roomnum+'】账单合并,主房间为【'+room+'】'')');
  MessageDlg('将房间【'+roomnum+'】账单合并,主房间为【'+room+'】!',mtConfirmation, [mbYes], 0);
  close;
end;

procedure THBZDForm.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 THBZDForm.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;

end. 

⌨️ 快捷键说明

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