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