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

📄 xfzzcx.pas

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

interface

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

type
  Txfzzcxform = 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;
    man: TRadioButton;
    woman: TRadioButton;
    bj: TRadioButton;
    Splitter1: TSplitter;
    Label4: TLabel;
    MaskEdit2: TMaskEdit;
    Label5: TLabel;
    MaskEdit3: TMaskEdit;
    md: TCheckBox;
    dz: TCheckBox;
    xj: 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);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xfzzcxform: Txfzzcxform;

implementation
uses dataproc;

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

procedure Txfzzcxform.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 Txfzzcxform.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 Txfzzcxform.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  nowin where ismd=0 and begtime>=:pbeg and begtime<: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  nowin where djcode='''+trim(djdh.Text)+''')');
           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));

           hz.Prepare;
           hz.open;
           maskedit2.text:=floattostr(hz.fields[0].asfloat);
         end;
         cx.Active :=false;                                                                                                          //   begtime
         cx.sql.clear;
         cx.sql.add('select sum(money) as totje from  custom where (ismd=1 or welid in (select welid from  nowin where ismd=1) ) and regtime>=:pbeg and regtime<: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  nowin 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;
         maskedit3.text:=floattostr(cx.fieldbyname('totje').asfloat);
         cx.Active :=false;
         cx.sql.clear;
         cx.sql.add('select sum(money) as totxf from  custom where  regtime>=:pbeg and regtime<: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  nowin 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('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= nowin.sex) as 类型,(select sum(money) from  custom where welid= nowin.welid) as 消费合计,money*zkl/100 as 房费,istime,');
           hz.sql.add(' csmoney*zkl/100 as 超时,accno as 帐号 from  nowin where begtime>=:pbeg and begtime<: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  nowin where djcode='''+trim(djdh.Text)+''')');
           if md.Checked then
              hz.sql.add(' and (ismd=1 or jzfs=''05'') ');
           if xj.Checked then
              hz.sql.add(' and (isxj=1 or jzfs=''01'') ');
           if dz.Checked then
              hz.sql.add(' and zkl<>100 ');
           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));

           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 Txfzzcxform.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 Txfzzcxform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  cx.free;
  hz.Free;
end;


procedure Txfzzcxform.hdnoEnter(Sender: TObject);
begin
  man.enabled:=true;
  woman.enabled:=true;
  cx.Active :=false;
  hz.Active :=false;
end;

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

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

procedure Txfzzcxform.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 Txfzzcxform.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 Txfzzcxform.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 Txfzzcxform.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  nowin 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 Txfzzcxform.dhChange(Sender: TObject);
begin
   hdno.Text:='';
   acc:='';
end;

procedure Txfzzcxform.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  custom.handno,lssex.sexname,cusitem.cusname, custom.cusprice, custom.cusnum, custom.money, custom.isxj, custom.ismd, custom.regtime, custom.czy,pdid,Proid, custom.djcode, custom.sex  from  custom,cusitem,lssex');
         cx.sql.add('  where ( custom.cuscode=cusitem.cuscode) and (lssex.sex= custom.sex) ');
         if (sh.Checked) and (hdno.Text<>'') then
            cx.sql.add(' and  custom.handno='''+trim(hdno.Text)+'''');
         if not xf.Checked then
            cx.sql.add(' and accno='''+trim(hz.fieldbyname('帐号').asstring)+'''')
         else
            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  nowin where djcode='''+trim(djdh.Text)+''')');
         cx.sql.add(' order by  custom.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;

end.

⌨️ 快捷键说明

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