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

📄 xftj.pas

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

interface

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

type
  Txftjform = class(TForm)
    q1: TQuery;
    DataSource1: TDataSource;
    mxname: TTabControl;
    DBGrid1: TDBGrid;
    mxlb: TComboBox;
    Panel2: TPanel;
    begdate: TDateTimePicker;
    begtime: TDateTimePicker;
    Label7: TLabel;
    enddate: TDateTimePicker;
    endtime: TDateTimePicker;
    xfname: TComboBox;
    xflb: TComboBox;
    Panel3: TPanel;
    Label1: TLabel;
    yjzhj: TLabel;
    Label2: TLabel;
    wjzhj: TLabel;
    Label3: TLabel;
    hj: TLabel;
    SpeedButton1: TSpeedButton;
    Panel4: TPanel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    cwsys: TComboBox;
    Label4: TLabel;
    SpeedButton4: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure begdateChange(Sender: TObject);
    procedure xfnameChange(Sender: TObject);
    procedure mxnameChange(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xftjform: Txftjform;

implementation
uses dataproc, xftjprin;

{$R *.DFM}


procedure formini;
begin
  with xftjform do
  begin
      DataSource1.DataSet:=nil;
      q1.Active :=false;
      q1.sql.clear;
      if xfname.ItemIndex=0 then
      begin
         q1.sql.add('select sum(Money) from custom where (Regtime>=:pbgtm1) and (Regtime<=:pedtm1) and jsj='''+curper.workjsj+'''');
         q1.ParamByName ('pbgtm1').asstring:=datetostr(begdate.Date)+' '+timetostr(begtime.time);
         q1.ParamByName ('pedtm1').asstring:=datetostr(enddate.Date)+' '+timetostr(endtime.time);
         q1.Prepare;
         q1.open;
         if (q1.Fields[0].isnull) or (trim(q1.Fields[0].asstring)='') then
            wjzhj.Caption:='0'
         else
            wjzhj.Caption:=q1.Fields[0].asstring;
         q1.Active :=false;
         q1.sql.clear;
         q1.sql.add('select sum(Money) from lscustom where (Regtime>=:pbgtm1) and (Regtime<=:pedtm1) and jsj='''+curper.workjsj+'''');
         q1.ParamByName ('pbgtm1').asstring:=datetostr(begdate.Date)+' '+timetostr(begtime.time);
         q1.ParamByName ('pedtm1').asstring:=datetostr(enddate.Date)+' '+timetostr(endtime.time);
         q1.Prepare;
         q1.open;
         if (q1.Fields[0].isnull) or (trim(q1.Fields[0].asstring)='') then
            yjzhj.Caption:='0'
         else
            yjzhj.Caption:=q1.Fields[0].asstring;
         hj.Caption:=floattostr(strtofloat(wjzhj.Caption)+strtofloat(yjzhj.Caption));
         q1.Active :=false;
         q1.sql.clear;
         q1.SQL.Add('delete from customls');
         q1.sql.add('insert into customls select * from custom where (Regtime>=:pbgtm1) and (Regtime<=:pedtm1) and jsj='''+curper.workjsj+'''');
         q1.sql.add('insert into customls select * from lscustom where (Regtime>=:pbgtm1) and (Regtime<=:pedtm1) and jsj='''+curper.workjsj+'''');
         q1.ParamByName ('pbgtm1').asstring:=datetostr(begdate.Date)+' '+timetostr(begtime.time);
         q1.ParamByName ('pedtm1').asstring:=datetostr(enddate.Date)+' '+timetostr(endtime.time);
         q1.Prepare;
         q1.ExecSQL;
         q1.Active :=false;
         q1.sql.clear;
      end
      else
      begin
         if mxname.TabIndex=0 then
            q1.sql.add('select sum(Money) from custom where (regtime>=:pbgtm1) and (regtime<=:pedtm1) and substring(custype,1,2)='''+xflb.Items[xfname.itemIndex]+''' and jsj='''+curper.workjsj+'''')
         else
            q1.sql.add('select sum(Money) from custom where (regtime>=:pbgtm1) and (regtime<=:pedtm1) and custype='''+mxlb.Items[mxname.TabIndex]+''' and jsj='''+curper.workjsj+'''');
         q1.ParamByName ('pbgtm1').asstring:=datetostr(begdate.Date)+' '+timetostr(begtime.time);
         q1.ParamByName ('pedtm1').asstring:=datetostr(enddate.Date)+' '+timetostr(endtime.time);
         q1.Prepare;
         q1.open;
         if (q1.Fields[0].isnull) or (trim(q1.Fields[0].asstring)='') then
            wjzhj.Caption:='0'
         else
            wjzhj.Caption:=q1.Fields[0].asstring;
         q1.Active :=false;
         q1.sql.clear;
         if mxname.TabIndex=0 then
            q1.sql.add('select sum(Money) from lscustom where (regtime>=:pbgtm1) and (regtime<=:pedtm1) and substring(custype,1,2)='''+xflb.Items[xfname.itemIndex]+''' and jsj='''+curper.workjsj+'''')
         else
            q1.sql.add('select sum(Money) from lscustom where (regtime>=:pbgtm1) and (regtime<=:pedtm1) and custype='''+mxlb.Items[mxname.tabIndex]+''' and jsj='''+curper.workjsj+'''');
         q1.ParamByName ('pbgtm1').asstring:=datetostr(begdate.Date)+' '+timetostr(begtime.time);
         q1.ParamByName ('pedtm1').asstring:=datetostr(enddate.Date)+' '+timetostr(endtime.time);
         q1.Prepare;
         q1.open;
         if (q1.Fields[0].isnull) or (trim(q1.Fields[0].asstring)='') then
            yjzhj.Caption:='0'
         else
            yjzhj.Caption:=q1.Fields[0].asstring;
         hj.Caption:=floattostr(strtofloat(wjzhj.Caption)+strtofloat(yjzhj.Caption));
         q1.Active :=false;
         q1.sql.clear;
         q1.SQL.Add('delete from customls');
         if mxname.TabIndex=0 then
         begin
            q1.sql.add('insert into customls select * from custom where (Regtime>=:pbgtm1) and (regtime<=:pedtm1) and substring(custype,1,2)='''+xflb.Items[xfname.ItemIndex]+''' and jsj='''+curper.workjsj+'''');
            q1.sql.add('insert into customls select * from lscustom where (Regtime>=:pbgtm1) and (regtime<=:pedtm1) and substring(custype,1,2)='''+xflb.Items[xfname.ItemIndex]+''' and jsj='''+curper.workjsj+'''');
         end
         else
         begin
            q1.sql.add('insert into customls select * from custom where (Regtime>=:pbgtm1) and (regtime<=:pedtm1) and custype='''+mxlb.Items[mxname.TabIndex]+''' and jsj='''+curper.workjsj+'''');
            q1.sql.add('insert into customls select * from lscustom where (Regtime>=:pbgtm1) and (regtime<=:pedtm1) and custype='''+mxlb.Items[mxname.TabIndex]+''' and jsj='''+curper.workjsj+'''');
         end;
         q1.ParamByName ('pbgtm1').asstring:=datetostr(begdate.Date)+' '+timetostr(begtime.time);
         q1.ParamByName ('pedtm1').asstring:=datetostr(enddate.Date)+' '+timetostr(endtime.time);
         q1.Prepare;
         q1.ExecSQL;
      end;
      q1.Active :=false;
      q1.sql.clear;
      q1.SQL.Add('select CusName,cusjc,Price,Unit,(select sum(CusNum) from customls where cuscode=cusitem.cuscode) as sl,(select sum(Money) from customls where cuscode=cusitem.cuscode) as hj from cusitem where cuscode in (select cuscode from customls)');
      q1.open;
      DataSource1.DataSet:=q1;
  end;
end;

procedure xflbini;
begin
  with xftjform do
  begin
   DataSource1.DataSet:=nil;
   mxlb.Items.Clear;
   mxname.Tabs.Clear;
   mxlb.Items.Add('');
   mxname.Tabs.Add('全部');
   if xfname.ItemIndex<>0 then
   begin
      q1.Active :=false;
      q1.sql.clear;
      q1.sql.add('select CusType,CusName from custype where parentcode='''+xflb.Items[xfname.ItemIndex]+'''');
      q1.Open;
      while not q1.Eof do
      begin
         mxlb.Items.Add(q1.Fields[0].asstring);
         mxname.Tabs.Add(q1.Fields[1].asstring);
         q1.Next;
      end;
   end;
   formini;
  end;
end;


procedure Txftjform.FormCreate(Sender: TObject);
var i:integer;
begin
   shortdateformat:='yyyy-mm-dd';
   begdate.date:=now;
   begtime.Time:=strtotime('00:00');
   enddate.datetime:=now;
   endtime.time:=strtotime('23:59');
   Panel4.Caption:=curper.sydw+'消费收入统计表';
   xflb.Items.Clear;
   xfname.Items.Clear;
   xflb.Items.Add('');
   xfname.Items.Add('全部');
   xfname.DropDownCount:=1;
   cwsys.Items.Clear;
   try
     cwsys.Items.LoadFromFile(curper.workpath+'\cwsys.dll');
   except
   end;
   for i:=1 to cwsys.Items.Count-1 do
   begin
      xflb.Items.Add(trim(copy(cwsys.Items[i],1,4)));
      xfname.Items.Add(trim(copy(cwsys.Items[i],15,30)));
      xfname.DropDownCount:=xfname.DropDownCount+1;
   end;
   xfname.ItemIndex:=0;
   xflbini;
end;


procedure Txftjform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=112 then
  begin
    if xt=1 then help(3);
    if xt=0 then help(5);
  end;
  if key=13 then
     selectnext(activecontrol,true,true);
  if key=27 then
     xftjform.close;
end;

procedure Txftjform.FormClose(Sender: TObject; var Action: TCloseAction);
begin

         q1.Active :=false;
         q1.sql.clear;
         q1.SQL.Add('delete from customls');
         q1.ExecSQL;
         q1.Active :=false;
         q1.sql.clear;
         q1.free;
end;

procedure Txftjform.begdateChange(Sender: TObject);
begin
   q1.Close;

end;

procedure Txftjform.xfnameChange(Sender: TObject);
begin
   xflbini;
end;

procedure Txftjform.mxnameChange(Sender: TObject);
begin
   formini;
end;

procedure Txftjform.SpeedButton1Click(Sender: TObject);
begin
  if (DataSource1.DataSet=q1) and (q1.Active) then
  begin
     application.CreateForm(Txftjprinform,xftjprinform);
     xftjprinform.QRLabel12.Caption:=formatdatetime('yyyy''年''m''月''d''日''',begdate.Date)+' '+formatdatetime('hh''时''mm''分''',begtime.Time)+'至'+formatdatetime('yyyy''年''m''月''d''日''',enddate.Date)+' '+formatdatetime('hh''时''mm''分''',endtime.Time)+' 消费站点:'+curper.workjsj;
     if xfname.ItemIndex<>0 then xftjprinform.QRLabel12.Caption:=xftjprinform.QRLabel12.Caption+' 消费类型:'+xfname.Text;
     if mxname.TabIndex<>0 then xftjprinform.QRLabel12.Caption:=xftjprinform.QRLabel12.Caption+'/'+mxname.Tabs[mxname.TabIndex];
     xftjprinform.QRLabel12.Caption:=xftjprinform.QRLabel12.Caption+' 统计结果';
     xftjprinform.QRLabel3.Caption:='已结帐合计:'+yjzhj.Caption+'  未结帐合计:'+wjzhj.Caption+'  总合计:'+hj.Caption;
     xftjprinform.hide;
     xftjprinform.qr1.Print;
     xftjprinform.free;
  end;


end;

procedure Txftjform.SpeedButton2Click(Sender: TObject);
begin
  if (DataSource1.DataSet=q1) and (q1.Active) then
  begin
     application.CreateForm(Txftjprinform,xftjprinform);
     xftjprinform.QRLabel1.Caption:=Panel4.Caption;
     xftjprinform.QRLabel12.Caption:=formatdatetime('yyyy''年''m''月''d''日''',begdate.Date)+formatdatetime('hh''时''mm''分''',begtime.Time)+'至'+formatdatetime('yyyy''年''m''月''d''日''',enddate.Date)+formatdatetime('hh''时''mm''分''',endtime.Time)+'站点:'+curper.workjsj;
     if xfname.ItemIndex<>0 then xftjprinform.QRLabel12.Caption:=xftjprinform.QRLabel12.Caption+' 消费类型:'+xfname.Text;
     if mxname.TabIndex<>0 then xftjprinform.QRLabel12.Caption:=xftjprinform.QRLabel12.Caption+'/'+mxname.Tabs[mxname.TabIndex];
     xftjprinform.QRLabel12.Caption:=xftjprinform.QRLabel12.Caption+' 统计结果';
     xftjprinform.QRLabel3.Caption:='已结帐合计:'+yjzhj.Caption+'  未结帐合计:'+wjzhj.Caption+'  总合计:'+hj.Caption;
     xftjprinform.hide;
     xftjprinform.qr1.preview;
     xftjprinform.free;
  end;
end;

procedure Txftjform.SpeedButton3Click(Sender: TObject);
begin
   close;
end;

procedure Txftjform.SpeedButton4Click(Sender: TObject);
begin
  formini;
end;

end.

⌨️ 快捷键说明

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