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

📄 bkjzunit.pas

📁 东华休闲山庄洗浴、餐饮、客房管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit BKJZUnit;

interface                                   

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

type
  TBKJZForm = class(TForm)
    ds1: TDataSource;
    ds2: TClientDataSet;
    suiPanel1: TsuiPanel;
    dbgrd1: TDBGrid;
    suiPanel2: TsuiPanel;
    suiTreeView1: TsuiTreeView;
    lbl1: TLabel;
    suiTreeView2: TsuiTreeView;
    suiArrowButton1: TsuiArrowButton;
    suiArrowButton2: TsuiArrowButton;
    il1: TImageList;
    suiPanel3: TsuiPanel;
    Label37: TLabel;
    Label35: TLabel;
    Label33: TLabel;
    Label31: TLabel;
    Label28: TLabel;
    Label8: TLabel;
    Label7: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label32: TLabel;
    Label34: TLabel;
    Label36: TLabel;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    img1: TImage;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    suiEdit2: TsuiEdit;
    suiCheckBox6: TsuiCheckBox;
    suiButton1: TsuiButton;
    suiButton2: TsuiButton;
    suiCheckBox1: TsuiCheckBox;
    suiCheckBox2: TsuiCheckBox;
    procedure btn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
    procedure suiEdit2KeyPress(Sender: TObject; var Key: Char);
    procedure suiArrowButton1Click(Sender: TObject);
    procedure suiArrowButton2Click(Sender: TObject);
    procedure dbgrd1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure suiButton2Click(Sender: TObject);
    procedure suiCheckBox1Click(Sender: TObject);
    procedure suiCheckBox2Click(Sender: TObject);
    procedure img1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    id:string;
    guestid:string;
    paymode:string;
    sql:string;
    deposit:string;
    procedure Refrush(sql:string);
  end;

var
  BKJZForm: TBKJZForm;

implementation

uses MainUnit, LoginUnit, YJSelectUnit;

{$R *.dfm}

procedure TBKJZForm.Refrush(sql:string);
begin
  self.ds2.Close;
  Self.ds2.CommandText:=sql;
  Self.ds2.Open;
end;

procedure TBKJZForm.btn2Click(Sender: TObject);
begin
  close;
end;

procedure TBKJZForm.FormCreate(Sender: TObject);
var
  sql:string;
  node:ttreenode;
  temp:string;
  a,b:string;
  room:string;
  str:string;
begin
  Self.suiEdit2.Clear;
  self.suiTreeView2.Items.Clear;
  self.Label8.Caption:='ZD'+formatdatetime('yyyymmddhhnnss',now);
  loginform.ExecuteSQL('select room_id from room where room_num='''+mainform.roomnum+'''');
  id:=LoginForm.dsQuery.Fields[0].AsString;
  LoginForm.dsQuery.Close;
  loginform.ExecuteSQL('select guest,memozs,deposit,paymode from house where id='''+id+'''');
  guestid:=LoginForm.dsQuery.Fields[0].AsString;
  self.Label28.Caption:=LoginForm.dsQuery.Fields[1].AsString;
  paymode:=LoginForm.dsQuery.Fields[3].AsString;
  LoginForm.dsQuery.Close;
  loginform.ExecuteSQL('select sum(deposit) from house where id='''+id+'''');
  self.Label37.Caption:=FormatFloat('0.00',LoginForm.dsQuery.Fields[0].AsFloat);
  self.deposit:=Self.Label37.Caption;
  LoginForm.dsQuery.Close;
  loginform.ExecuteSQL('select name from guest where id='+guestid);
  self.Label27.Caption:=LoginForm.dsQuery.fieldbyname('name').AsString;
  LoginForm.dsQuery.Close;
  LoginForm.ExecuteSQL('select sum(lbxf_xfje),sum((1-lbxf_dzbl)*lbxf_xmdj*lbxf_xfsl) from consume '+
                       'where Lbxf_xfbh='''+id+'''');
  self.Label33.Caption:=FormatFloat('0.00',LoginForm.dsQuery.Fields[0].AsFloat);
  self.Label42.Caption:=FormatFloat('0.00',LoginForm.dsQuery.Fields[0].AsFloat);
  self.Label35.Caption:=FormatFloat('0.00',LoginForm.dsQuery.Fields[1].AsFloat);
  self.label31.Caption:=FormatFloat('0.00',LoginForm.dsQuery.Fields[0].AsFloat+LoginForm.dsQuery.Fields[1].AsFloat);
  a:=self.Label37.Caption;
  b:=self.Label33.Caption;
  self.Label41.Caption:=FormatFloat('0.00',StrToFloat(a)-StrToFloat(b));
  LoginForm.dsQuery.Close;
  self.suiPanel1.Caption:='结账区内房间 消费清单 合计:'+self.Label33.Caption;
  self.suiTreeView2.Items.Clear;
  self.suiTreeView2.Items.BeginUpdate;
  temp:=self.Label28.Caption;
  Delete(temp,1,9);
  sql:='select memozs,id 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;
      Delete(room,1,9);
      room:=Copy(room,1,Pos(';',room)-1);
      if room<>Copy(temp,1,Pos(';',temp)-1) then
        str:=str+'(room='''+room+''') or ';
      LoginForm.dsQuery.Next;
    end;
  LoginForm.dsQuery.Close;
  if str<>'' then
    begin
      delete(str,length(str)-3,4);
      sql:=sql+'and ('+str+') ';
    end;
  sql:=sql+'order by room';
  LoginForm.ExecuteSQL(sql);
  LoginForm.dsQuery.First;
  while not LoginForm.dsQuery.Eof do
    begin
      temp:=LoginForm.dsQuery.Fields[0].AsString;
      Delete(temp,1,9);
      node:=self.suiTreeView2.Items.Add(nil,Copy(temp,1,Pos(';',temp)-1)+':'+LoginForm.dsQuery.Fields[1].AsString);
      Delete(temp,1,Pos(';',temp));
      while Pos(';',temp)>0 do
        begin
          Self.suiTreeView2.Items.AddChild(node,Copy(temp,1,Pos(';',temp)-1));
          Delete(temp,1,Pos(';',temp));
        end;
      LoginForm.dsQuery.Next;
    end;
  LoginForm.dsQuery.Close;
  self.suiTreeView2.Items.EndUpdate;
  self.suiTreeView1.Items.Clear;
  self.suiTreeView1.Items.BeginUpdate;
  node:=self.suiTreeView1.Items.Add(nil,'【结账单号】'+self.Label8.Caption);
  temp:=self.Label28.Caption;
  Delete(temp,1,9);
  node:=Self.suiTreeView1.Items.AddChild(node,Copy(temp,1,Pos(';',temp)-1)+':'+id);
  Delete(temp,1,Pos(';',temp));
  while Pos(';',temp)>0 do
    begin
      Self.suiTreeView1.Items.AddChild(node,Copy(temp,1,Pos(';',temp)-1));
      Delete(temp,1,Pos(';',temp));
    end;
  self.suiTreeView1.Items.EndUpdate;
  node:=self.suiTreeView1.Items.GetFirstNode;
  node.Expand(true);
  sql:='select lbxf_sph,lbxf_xfxm,lbxf_xmdj,lbxf_dzbl,lbxf_xfsl,'+
              'lbxf_xfje,lbxf_xfbegin,lbxf_jjdw,lbxf_jzr,'+
              '(1-lbxf_dzbl)*lbxf_xmdj*lbxf_xfsl as lbxf_yhje '+
       'from consume '+
       'where Lbxf_xfbh='''+id+''''+
       'order by Lbxf_xfbh,lbxf_sph';
  Refrush(sql);
end;

procedure TBKJZForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  self.ds2.Close;
  mainform.RefrushRoomState(0);
  MainForm.Enabled:=True;
end;

procedure TBKJZForm.FormActivate(Sender: TObject);
begin
  self.suiEdit2.Text:='0';
  self.suiEdit2.SetFocus;
end;

procedure TBKJZForm.suiEdit2KeyPress(Sender: TObject; var Key: Char);
var
  a,b:string;
begin
  if not (Key in [#48..#57,#8,#13]) then
    key:=#0
  else
    if Key=#13 then
      if suiEdit2.Text='' then
        MessageDlg('宾客金额不可以为空!',mtConfirmation, [mbYes], 0)
      else
        begin
          Self.Label37.Caption:=FormatFloat('0.00',StrToFloat(Copy(deposit,3,Length(deposit)-2))+
                                                   StrToFloat(suiEdit2.Text));
          a:=Self.Label37.Caption;
          b:=self.Label33.Caption;
          self.Label41.Caption:=FormatFloat('0.00',StrToFloat(a)-StrToFloat(b));
        end;
end;

procedure TBKJZForm.suiArrowButton1Click(Sender: TObject);
var
  node:TTreeNode;
  temp:string;
  sql:string;
  index:Integer;
  count:Integer;
  str,str1:string;
  a,b:string;
begin
  node:=self.suiTreeView2.Selected;
  if node.Level=0 then
    begin
      temp:=node.Text;
      node.Delete;
      Delete(temp,1,Pos(':',temp));
      LoginForm.ExecuteSQL('select memozs,id from house where id='''+temp+'''');
      temp:=LoginForm.dsQuery.Fields[0].AsString;
      Delete(temp,1,9);
      Self.suiTreeView1.Items.BeginUpdate;

⌨️ 快捷键说明

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