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