📄 xflscx.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 + -