📄 sankbj.pas
字号:
unit sankbj;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBTables, Db, StdCtrls, Grids, DBGrids, ExtCtrls, Buttons, Menus;
type
TCustomDBGridCracker= class(TCustomDBGrid);
Tsankaddposform = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Bevel1: TBevel;
Panel1: TPanel;
StaticText1: TStaticText;
BitBtn1: TBitBtn;
caljz: TStoredProc;
q1: TQuery;
Query1: TQuery;
Panel2: TPanel;
BitBtn2: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure BitBtn1Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure BitBtn2Click(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
sankaddposform: Tsankaddposform;
implementation
{$R *.DFM}
uses newjzform;
procedure Tsankaddposform.FormCreate(Sender: TObject);
begin
shortdateformat:='yyyy-MM-dd';
caljz.UnPrepare;
caljz.prepare;
caljz.ParamByName('@ilftime').asdatetime:=NOW;
caljz.ParamByName('@itime').asdatetime:=NOW;
caljz.prepare;
caljz.ExecProc;
caljz.UnPrepare;
q1.Active :=false;
q1.sql.clear; //a addpost b lssex c mode
q1.sql.text:='select DISTINCT accno as 帐号,max(djcode) as 登记单号,min(roomno) as 房号,count(*) as 房间数,';
q1.SQL.Add(' (isnull(sum(money),0)+isnull(sum(csmoney),0)+(select isnull(sum(money),0)+isnull(sum(csmoney),0) from changeroom where nowin.accno=changeroom.accno and cal=1)) as 房费,min(begtime) as 入住时间 ,');
q1.SQL.Add(' (select isnull(sum(money),0) from custom where nowin.accno=custom.accno and isxj=0 and ismd=0) as 消费,');
q1.SQL.Add(' (select isnull(sum(deposit),0) from deposit where nowin.accno=deposit.accno) as 押金,');
q1.sql.add(' ((select isnull(sum(deposit),0) from deposit where nowin.accno=deposit.accno)-(select isnull(sum(money),0)+isnull(sum(csmoney),0) from changeroom where nowin.accno=changeroom.accno and cal=1)-');
q1.sql.add(' (isnull(sum(money),0)+isnull(sum(csmoney),0))-(select isnull(sum(money),0) from custom where nowin.accno=custom.accno and isxj=0 and ismd=0)) as 节余');
q1.sql.add(' from nowin where (jzfs=''01'') group by accno');
q1.Prepare;
//DataSource1.DataSet:=nil;
q1.open;
DataSource1.DataSet:=q1;
end;
procedure Tsankaddposform.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with TCustomDBGridCracker(Sender) do begin
if (q1.Fieldbyname('节余').Asfloat<0)then
begin
Canvas.Font.Name:='宋体';
Canvas.Font.Pitch:=fpDefault;
Canvas.Font.Size:=9;
Canvas.Font.color:=clred;
Canvas.Font.Style:=[fsBold];
end;
DefaultDrawColumnCell(Rect,Datacol,column,State);
end;
end;
procedure Tsankaddposform.BitBtn1Click(Sender: TObject);
begin
close;
end;
procedure Tsankaddposform.DBGrid1CellClick(Column: TColumn);
var str:string;
begin
str:='';
if q1.Active then
begin
query1.Active:=false;
query1.SQL.Clear;
query1.SQL.Add('select roomno from nowin where accno='''+q1.Fields[0].AsString+'''');
query1.Prepare;
query1.Open;
while not query1.Eof do
begin
str:=str+','+query1.Fields[0].AsString;
query1.Next;
end;
Panel2.Caption:='所有房间明细:'+str;
end;
end;
procedure Tsankaddposform.BitBtn2Click(Sender: TObject);
begin
FormCreate(nil);
end;
procedure Tsankaddposform.DataSource1DataChange(Sender: TObject;
Field: TField);
begin
DBGrid1CellClick(nil);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -