📄 krxfmxunit.pas
字号:
unit krxfmxUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Grids, DBGrids, Buttons, ExtCtrls, Db, DBTables,
Menus;
type
TxfmxForm = class(TForm)
Panel1: TPanel;
begdate: TDateTimePicker;
enddate: TDateTimePicker;
BitBtn1: TBitBtn;
Label1: TLabel;
Label2: TLabel;
BitBtn2: TBitBtn;
DataSource1: TDataSource;
Query1: TQuery;
Query2: TQuery;
DataSource2: TDataSource;
TabControl1: TTabControl;
DBGrid2: TDBGrid;
DBGrid1: TDBGrid;
endtime: TDateTimePicker;
begtime: TDateTimePicker;
Label3: TLabel;
Edit1: TEdit;
Panel2: TPanel;
Query3: TQuery;
Query4: TQuery;
Splitter1: TSplitter;
Label4: TLabel;
Edit2: TEdit;
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure TabControl1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure DBGrid1CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
xfmxForm: TxfmxForm;
implementation
uses dataproc, jzcx;
{$R *.DFM}
procedure TxfmxForm.FormShow(Sender: TObject);
begin
begdate.Datetime:=now-1;
enddate.Datetime:=now;
begtime.time:=strtotime('00:00:00');
endtime.time:=strtotime('23:59:59');
end;
procedure TxfmxForm.BitBtn1Click(Sender: TObject);
var tj:string;
begin
tj:='';
if trim(edit1.Text)<>'' then
begin
if tj='' then
tj:=' and djcode like ''%''+'''+trim(edit1.Text)+'''' else
tj:=tj+' and djcode like ''%''+'''+trim(edit1.Text)+'''';
end;
if trim(edit2.Text)<>'' then
begin
if tj='' then
tj:=' and accno like ''%''+'''+trim(edit2.Text)+'''' else
tj:=tj+' and accno like ''%''+'''+trim(edit2.Text)+'''';
end;
DataSource1.Tag:=0;
DataSource1.DataSet:=nil;
query1.Close;
// query1.Prepare;
query1.SQL.Clear;
{query1.sql.Add('select accno,max(djcode),min(handno),sum(num),(select sexname from lssex where sex=max(nowin.sex)) as sex,sum(money),sum(csmoney),min(begtime),max(endtime),(select name from mode where code=min(nowin.jzfs)) as 结帐方式,max(czy) from nowin ');
query1.sql.Add(' where begtime>=:pbegtime and begtime<:pendtime '+tj+' group by accno'); }
{ query1.sql.Add('select accno,max(djcode),min(handno),sum(num),(select sexname from lssex where sex=max(lsnowin.sex)) as sex,(select isnull((roommoney+rmcsmoney+sanmoney+sancsmoney),0) from lsjz where lsjz.accno=lsnowin.accno and ysmoney<>0 ) as roommoney ');
query1.sql.Add(',sum(csmoney),min(begtime),max(endtime),(select name from mode where code=min(lsnowin.jzfs)) as 结帐方式,max(czy) from lsnowin ');
query1.sql.Add(' where money<>0 and EndTime>=:pbegtime and EndTime<:pendtime '+tj+' group by accno');
query1.sql.Add(' order by accno'); }
//
query1.sql.Add('select accno,welid,djcode,handno,num,(select sexname from lssex where sex=lsnowin.sex) as sex,roomprice,truntime,money, ');
query1.sql.Add('csmoney,begtime,endtime,(select name from mode where code=lsnowin.jzfs) as jzfs,czy from lsnowin ');
query1.sql.Add(' where EndTime>=:pbegtime and EndTime<:pendtime '+tj );
query1.sql.Add(' order by accno');
query1.ParamByName('pbegtime').asstring:=formatdatetime('yyyy-MM-dd',begdate.date)+' '+formatdatetime('hh:mm:ss',begtime.time);
query1.ParamByName('pendtime').asstring:=formatdatetime('yyyy-MM-dd',enddate.date)+' '+formatdatetime('hh:mm:ss',endtime.time);
query1.Prepare;
query1.Open;
// query1.Fields[0].Visible:=false;
DataSource1.DataSet:=query1;
{ ChineseGrid(DBGrid1);
dbgrid1.Fields[0].DisplayLabel:='帐号';
dbgrid1.Fields[1].DisplayLabel:='登记单号'; }
DataSource1.Tag:=1;
// DBGrid1CellClick(nil);
end;
procedure TxfmxForm.TabControl1Change(Sender: TObject);
begin
if TabControl1.Tabs.Count<1 then
begin
query2.Active:=false;
exit;
end;
Query2.Close;
//此 djcode 表示 消费单号
Query2.ParamByName('pdj').asstring:=trim(TabControl1.Tabs[TabControl1.TabIndex]);
Query2.ParamByName('paccno').asstring:=query1.Fieldbyname('accno').asstring;
Query2.Open;
// ChineseGrid(DBGrid2);
tbooleanfield(DBGrid2.Fields[6]).displayvalues:='是;否';
tbooleanfield(DBGrid2.Fields[7]).displayvalues:='是;否';
end;
procedure TxfmxForm.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TxfmxForm.DataSource1DataChange(Sender: TObject; Field: TField);
var str:string;
begin
str:=''; Panel2.Caption:='';
if (DataSource1.DataSet=nil)then exit; // or (DataSource1.Tag=0)
fm.Query2.Active:=false;
fm.Query2.SQL.Clear;
fm.Query2.SQL.Add('select DISTINCT djcode from custom where accno='''+trim(query1.Fieldbyname('accno').asstring)+''' ');
fm.Query2.SQL.Add('union (select DISTINCT djcode from lscustom where accno='''+trim(query1.Fieldbyname('accno').asstring)+''')');
fm.Query2.Open;
TabControl1.Tabs.Clear;
while not fm.Query2.Eof do
begin
TabControl1.Tabs.Add(fm.Query2.Fields[0].asstring);
fm.Query2.Next;
end;
fm.Query2.Close;
fm.Query2.SQL.Clear;
fm.Query2.Active:=false;
query3.Active:=false;
query3.SQL.Clear;
query3.SQL.Add('select * from lsjz where accno='''+trim(query1.Fieldbyname('accno').asstring)+''' ');
query3.Prepare;
query3.Open;
Panel2.Caption:='房费: '+floattostr(Query3.Fieldbyname('roommoney').asfloat+Query3.Fieldbyname('rmcsmoney').asfloat+Query3.Fieldbyname('sanmoney').asfloat+Query3.Fieldbyname('sancsmoney').asfloat)+' ,消费:'+Query3.Fieldbyname('cusmoney').asstring+' ,实收: '+Query3.Fieldbyname('ysmoney').asstring;
query4.Active:=false;
query4.SQL.Clear;
query4.SQL.Add('select * from lsnowin where accno='''+trim(query1.Fieldbyname('accno').asstring)+''' ');
query4.Prepare;
query4.Open;
while not query4.Eof do
begin
str:=str+';'+Query4.Fieldbyname('handno').asstring;
query4.Next;
end;
Panel2.Caption:='房间:'+str+' '+Panel2.Caption;
TabControl1Change(nil);
end;
procedure TxfmxForm.DBGrid1CellClick(Column: TColumn);
begin
DataSource1DataChange(nil,nil);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -