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

📄 xflscx.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
字号:
unit xflscx;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, Grids, DBGrids, ExtCtrls, Buttons, StdCtrls, Mask, ComCtrls;

type
  Txflscxform = class(TForm)
    Bevel1: TBevel;
    cx: TQuery;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    hz: TQuery;
    Panel3: TPanel;
    Label2: TLabel;
    hdno: TMaskEdit;
    cxbut: TBitBtn;
    MaskEdit1: TMaskEdit;
    BitBtn1: TBitBtn;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    djdh: TEdit;
    xf: TCheckBox;
    dj: TCheckBox;
    sh: TCheckBox;
    Label1: TLabel;
    Label3: TLabel;
    begdate: TDateTimePicker;
    begtime: TDateTimePicker;
    enddate: TDateTimePicker;
    endtime: TDateTimePicker;
    dh: TEdit;
    Splitter1: TSplitter;
    Label4: TLabel;
    MaskEdit2: TMaskEdit;
    Label5: TLabel;
    MaskEdit3: TMaskEdit;
    xfsj: TCheckBox;
    GroupBox1: TGroupBox;
    xj: TCheckBox;
    CheckBox1: TCheckBox;
    GroupBox2: TGroupBox;
    md: TCheckBox;
    GroupBox3: TGroupBox;
    dz: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure hdnoExit(Sender: TObject);
    procedure cxbutClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure hdnoEnter(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure dhEnter(Sender: TObject);
    procedure shClick(Sender: TObject);
    procedure djClick(Sender: TObject);
    procedure xfClick(Sender: TObject);
    procedure djdhExit(Sender: TObject);
    procedure dhChange(Sender: TObject);
    procedure DataSource2DataChange(Sender: TObject; Field: TField);
    procedure xfsjClick(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xflscxform: Txflscxform;

implementation
uses dataproc;

{$R *.DFM}
var
  acc:string;

procedure Txflscxform.FormCreate(Sender: TObject);
begin
   shortdateformat:='yyyy-mm-dd';
   dh.text:='';
   hdno.text:='';
   begdate.DateTime:=now-1;
   enddate.DateTime:=now;
   begtime.Time:=strtotime('00:00:00');
   endtime.Time:=strtotime('00:00:00');
   maskedit1.text:='0';
   maskedit2.text:='0';
   maskedit3.text:='0';

end;

procedure Txflscxform.hdnoExit(Sender: TObject);
begin
{  if length(trim(hdno.text))>0 then
  begin
    cx.Active :=false;
    cx.sql.clear;
    cx.sql.add('select accno from lsnowin where handno=:phandno and sex=:psex');
    cx.ParamByName ('phandno').asstring:=trim(hdno.text);
    if (man.Checked) then
         lssex:='1';
    if (woman.Checked) then
         lssex:='0';
    if (bj.Checked) then
       lssex:='2';
    if copy(hdno.Text,1,1)='Y' then
        lssex:='3';
    cx.ParamByName ('psex').asstring:=lssex;
    cx.Prepare;
    cx.Open;
    if cx.Eof then
    begin
       showmessage('手号错误!');
       cx.Active :=false;
       exit;
    end;
    acc:=cx.fieldbyname('accno').asstring;
//    lsbj:=cx.FieldByName ('isbj').asboolean;
    cx.Active :=false;
    cxbutClick(nil);
  end;}
end;

procedure Txflscxform.cxbutClick(Sender: TObject);
begin
         DataSource1.DataSet:=nil;
         DataSource2.DataSet:=nil;
         hz.Active :=false;
         if not xf.Checked then
         begin
           hz.Active :=false;
           hz.sql.clear;
           hz.sql.add('select (sum(money*zkl/100)+sum(csmoney*zkl/100)) as roommoney from lsnowin where ismd=0 and endtime>=:pbeg and endtime<:pend ');
           if (sh.Checked) and (hdno.Text<>'') then
              hz.sql.add(' and handno='''+trim(hdno.Text)+'''');
           if (dj.Checked) and (trim(djdh.text)<>'') then
              hz.sql.add(' and welid in (select welid from lsnowin where djcode='''+trim(djdh.Text)+''')');
           if xfsj.Checked then
           begin
             hz.ParamByName('pbeg').asdatetime:=strtodatetime(formatdatetime('yyyy-MM-dd',begdate.Date)+' '+formatdatetime('hh:mm:ss',begdate.Time));
             hz.ParamByName('pend').asdatetime:=strtodatetime(formatdatetime('yyyy-MM-dd',enddate.Date)+' '+formatdatetime('hh:mm:ss',enddate.Time));
           end else
           begin
             hz.ParamByName('pbeg').asdatetime:=strtodatetime('1900-01-01 00:00:00');
             hz.ParamByName('pend').asdatetime:=now+1;
           end;
           hz.Prepare;
           hz.open;
           maskedit2.text:=floattostr(hz.fields[0].asfloat);
         end;
         cx.Active :=false;
         cx.sql.clear;
         cx.sql.add('select sum(money) as totje from lscustom where (ismd=1 or welid in (select welid from lsnowin where ismd=1) or accno in (select accno from lsjz where ismxf=1)) and moditime>=:pbeg and moditime<:pend ');
         if (sh.Checked) and (hdno.Text<>'') then
            cx.sql.add(' and handno='''+trim(hdno.Text)+'''');
         if xf.Checked then
            cx.sql.add(' and djcode like ''%''+'''+trim(dh.text)+'''');
         if (dj.Checked) and (trim(djdh.text)<>'') then
            cx.sql.add(' and welid in (select welid from lsnowin where djcode='''+trim(djdh.Text)+''')');
         if xfsj.Checked then
         begin
           cx.ParamByName('pbeg').asdatetime:=strtodatetime(formatdatetime('yyyy-MM-dd',begdate.Date)+' '+formatdatetime('hh:mm:ss',begdate.Time));
           cx.ParamByName('pend').asdatetime:=strtodatetime(formatdatetime('yyyy-MM-dd',enddate.Date)+' '+formatdatetime('hh:mm:ss',enddate.Time));
         end else
         begin
             cx.ParamByName('pbeg').asdatetime:=strtodatetime('1900-01-01 00:00:00');
             cx.ParamByName('pend').asdatetime:=now+1;
         end;
         cx.Prepare;
         cx.Open;
         maskedit3.text:=floattostr(cx.fieldbyname('totje').asfloat);
         cx.Active :=false;
         cx.sql.clear;
         cx.sql.add('select sum(money) as totxf from lscustom where  moditime>=:pbeg and moditime<:pend ');
         if (sh.Checked) and (hdno.Text<>'') then
            cx.sql.add(' and handno='''+trim(hdno.Text)+'''');
         if xf.Checked then
            cx.sql.add(' and djcode='''+trim(dh.text)+'''');
         if (dj.Checked) and (trim(djdh.text)<>'') then
            cx.sql.add(' and welid in (select welid from lsnowin where djcode='''+trim(djdh.Text)+''')');
         if xfsj.Checked then
         begin
           cx.ParamByName('pbeg').asdatetime:=strtodatetime(formatdatetime('yyyy-MM-dd',begdate.Date)+' '+formatdatetime('hh:mm:ss',begdate.Time));
           cx.ParamByName('pend').asdatetime:=strtodatetime(formatdatetime('yyyy-MM-dd',enddate.Date)+' '+formatdatetime('hh:mm:ss',enddate.Time));
         end else
         begin
             cx.ParamByName('pbeg').asdatetime:=strtodatetime('1900-01-01 00:00:00');
             cx.ParamByName('pend').asdatetime:=now+1;
         end;
         cx.Prepare;
         cx.Open;
         maskedit1.text:=floattostr(cx.fieldbyname('totxf').asfloat);
         if not xf.Checked then
         begin
           hz.Active :=false;
           hz.sql.clear;
           hz.sql.add('select djcode,handno,(select sexname from lssex where sex=lsnowin.sex) as 类型,(select sum(money) from lscustom where welid=lsnowin.welid) as 消费合计,money*zkl/100 as 房费,istime,');
           hz.sql.add(' csmoney*zkl/100 as 超时,accno as 帐号 from lsnowin where endtime>=:pbeg and endtime<:pend ');
           if (sh.Checked) and (hdno.Text<>'') then
              hz.sql.add(' and handno='''+trim(hdno.Text)+'''');
           if (dj.Checked) and (trim(djdh.text)<>'') then
              hz.sql.add(' and welid in (select welid from lsnowin where djcode='''+trim(djdh.Text)+''')');
           if CheckBox3.Checked then
           begin
             if dz.Checked then
                hz.sql.add(' and zkl<>100 ')
             else
                hz.sql.add(' and zkl=100 ');
           end;
         if xfsj.Checked then
         begin
           hz.ParamByName('pbeg').asdatetime:=strtodatetime(formatdatetime('yyyy-MM-dd',begdate.Date)+' '+formatdatetime('hh:mm:ss',begdate.Time));
           hz.ParamByName('pend').asdatetime:=strtodatetime(formatdatetime('yyyy-MM-dd',enddate.Date)+' '+formatdatetime('hh:mm:ss',enddate.Time));
         end else
         begin
             hz.ParamByName('pbeg').asdatetime:=strtodatetime('1900-01-01 00:00:00');
             hz.ParamByName('pend').asdatetime:=now+1;
         end;

           hz.Prepare;
           hz.open;
           DataSource2.DataSet:=hz;
           dbgrid2.Fields[2].DisplayWidth:=6;
           dbgrid2.Fields[3].DisplayWidth:=6;
           dbgrid2.Fields[4].DisplayWidth:=8;
           chinesegrid(dbgrid2);
           dbgrid2.Fields[0].DisplayLabel:='登记单号';
           hz.Active :=true;
         end;
         DataSource1.DataSet:=cx;
         DataSource2DataChange(nil,nil);
end;

procedure Txflscxform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=112 then
  begin
     if xt=1 then help(7);
     if xt=0 then help(19);
  end;
   if key=13 then
      selectnext(activecontrol,true,true);
   if key=27 then
       close;
end;
procedure Txflscxform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  cx.free;
  hz.Free;
end;


procedure Txflscxform.hdnoEnter(Sender: TObject);
begin
  cx.Active :=false;
  hz.Active :=false;
end;

procedure Txflscxform.BitBtn1Click(Sender: TObject);
begin
   close;
end;

procedure Txflscxform.dhEnter(Sender: TObject);
begin
  dh.Text:='';
  hdno.text:='';
  cx.Close;
  hz.Close;
end;

procedure Txflscxform.shClick(Sender: TObject);
begin
   if sh.Checked then
   begin
     dj.Checked:=false;
     xf.Checked:=false;
   end;
   hdno.Enabled:=sh.Checked;
   djdh.Enabled:=dj.Checked;
   dh.Enabled:=xf.Checked;
  // acc:='';
  hdnoExit(nil);
end;

procedure Txflscxform.djClick(Sender: TObject);
begin
   if dj.Checked then
   begin
     sh.Checked:=false;
     xf.Checked:=false;
   end;
   hdno.Enabled:=sh.Checked;
   djdh.Enabled:=dj.Checked;
   dh.Enabled:=xf.Checked;
   acc:='';
   hdno.Text:='';

end;

procedure Txflscxform.xfClick(Sender: TObject);
begin
   if xf.Checked then
   begin
     dj.Checked:=false;
     sh.Checked:=false;
   end;
   hdno.Enabled:=sh.Checked;
   djdh.Enabled:=dj.Checked;
   dh.Enabled:=xf.Checked;
   acc:='';
   hdno.Text:='';
end;

procedure Txflscxform.djdhExit(Sender: TObject);
begin
   hdno.Text:='';
  if length(trim(djdh.text))>0 then
  begin
    cx.Active :=false;
    cx.sql.clear;
    cx.sql.add('select accno from lsnowin where djcode=:pdjdh');
    cx.ParamByName ('pdjdh').asstring:=trim(djdh.text);
    cx.Prepare;
    cx.Open;
    if cx.Eof then
    begin
       showmessage('单号错误!');
       cx.Active :=false;
       exit;
    end;
    acc:=cx.fieldbyname('accno').asstring;
    cx.Active :=false;
    cxbutClick(nil);
  end;

end;

procedure Txflscxform.dhChange(Sender: TObject);
begin
   hdno.Text:='';
   acc:='';
end;

procedure Txflscxform.DataSource2DataChange(Sender: TObject;
  Field: TField);
begin
   if DataSource1.DataSet=nil then exit;
{         cx.Active :=false;
         cx.sql.clear;
         cx.sql.add('select sum(money) as totje from lscustom where ismd=0 and moditime>=:pbeg and moditime<:pend ');
         if (sh.Checked) and (hdno.Text<>'') then
            cx.sql.add(' and handno='''+trim(hdno.Text)+'''');
         if xf.Checked then
            cx.sql.add(' and djcode='''+trim(dh.text)+'''');
         if (dj.Checked) and (trim(djdh.text)<>'') then
            cx.sql.add(' and welid in (select welid from lsnowin where djcode='''+trim(djdh.Text)+''')');
         cx.ParamByName('pbeg').asdatetime:=strtodatetime(formatdatetime('yyyy-mm-dd',begdate.Date)+' '+formatdatetime('hh:mm:ss',begdate.Time));
         cx.ParamByName('pend').asdatetime:=strtodatetime(formatdatetime('yyyy-mm-dd',enddate.Date)+' '+formatdatetime('hh:mm:ss',enddate.Time));
         cx.Prepare;
         cx.Open;
         maskedit1.text:=floattostr(cx.fieldbyname('totje').asfloat);   }
         cx.Active :=false;
         cx.sql.clear;
         cx.sql.add('select lscustom.handno,cusitem.cusname,lscustom.cusprice,lscustom.cusnum,lscustom.money,lscustom.isxj,lscustom.ismd,lscustom.regtime,lscustom.czy,pdid,Proid,lscustom.djcode from lscustom,cusitem');
         cx.sql.add('  where (lscustom.cuscode=cusitem.cuscode) ');
         if (sh.Checked) and (hdno.Text<>'') then
            cx.sql.add(' and lscustom.handno='''+trim(hdno.Text)+'''');
         if not xf.Checked then
            cx.sql.add(' and accno='''+trim(hz.fieldbyname('帐号').asstring)+'''')
         else
            cx.sql.add(' and djcode like ''%''+'''+trim(dh.Text)+'''');
         if (dj.Checked) and (trim(djdh.text)<>'') then
            cx.sql.add(' and welid in (select welid from lsnowin where djcode='''+trim(djdh.Text)+''')');
           if CheckBox2.Checked then
           begin
             if md.Checked then
                cx.sql.add(' and (ismd=1 or welid in (select welid from lsnowin where jzfs=''05'')) ')
             else
                cx.sql.add(' and (ismd=0 and welid in (select welid from lsnowin where jzfs<>''05'')) ');
           end;
           if CheckBox1.Checked then
           begin
             if xj.Checked then
                cx.sql.add(' and (isxj=1 ) ')
             else
                cx.sql.add(' and (isxj=0 ) ');
           end;
         cx.sql.add(' order by lscustom.cuscode ');
//         cx.ParamByName('pbeg').asdatetime:=strtodatetime(formatdatetime('yyyy-mm-dd',begdate.Date)+' '+formatdatetime('hh:mm:ss',begdate.Time));
//         cx.ParamByName('pend').asdatetime:=strtodatetime(formatdatetime('yyyy-mm-dd',enddate.Date)+' '+formatdatetime('hh:mm:ss',enddate.Time));
         cx.Prepare;
         cx.Open;
         chinesegrid(dbgrid1);
         cx.active:=true;

end;

procedure Txflscxform.xfsjClick(Sender: TObject);
begin
  begdate.Enabled:=xfsj.Checked;
  begtime.Enabled:=xfsj.Checked;
  enddate.Enabled:=xfsj.Checked;
  endtime.Enabled:=xfsj.Checked;
end;

procedure Txflscxform.CheckBox1Click(Sender: TObject);
begin
   GroupBox1.Enabled:=CheckBox1.Checked;

end;

procedure Txflscxform.CheckBox2Click(Sender: TObject);
begin
   GroupBox2.Enabled:=CheckBox2.Checked;

end;

procedure Txflscxform.CheckBox3Click(Sender: TObject);
begin
   GroupBox3.Enabled:=CheckBox3.Checked;

end;

end.

⌨️ 快捷键说明

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