📄 hbzdunit.pas
字号:
unit HBZDUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SUIButton, DB, DBClient, StdCtrls, SUIEdit, Grids, DBGrids,
ExtCtrls, SUIImagePanel;
type
THBZDForm = class(TForm)
suiPanel2: TsuiPanel;
dbgrd1: TDBGrid;
lbl1: TLabel;
suiEdit1: TsuiEdit;
ds1: TDataSource;
ds2: TClientDataSet;
Label1: TLabel;
suiArrowButton2: TsuiArrowButton;
suiArrowButton1: TsuiArrowButton;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
suiPanel1: TsuiPanel;
Label2: TLabel;
Label3: TLabel;
DBGrid1: TDBGrid;
btn1: TsuiButton;
btn2: TsuiButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ds2AfterScroll(DataSet: TDataSet);
procedure FormActivate(Sender: TObject);
procedure ClientDataSet1AfterScroll(DataSet: TDataSet);
procedure suiArrowButton1Click(Sender: TObject);
procedure suiArrowButton2Click(Sender: TObject);
procedure suiEdit1KeyPress(Sender: TObject; var Key: Char);
procedure btn1Click(Sender: TObject);
procedure dbgrd1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
HBZDForm: THBZDForm;
implementation
uses MainUnit, LoginUnit;
{$R *.dfm}
procedure THBZDForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
self.ds2.Close;
self.ClientDataSet1.Close;
LoginForm.ExecuteSQL('delete from housetemp');
LoginForm.ExecuteSQL('delete from housetest');
MainForm.RefrushRoomState(0);
MainForm.Enabled:=true;
end;
procedure THBZDForm.btn2Click(Sender: TObject);
begin
Close;
end;
procedure THBZDForm.FormCreate(Sender: TObject);
var
room:string;
sql:string;
str:string;
begin
self.suiEdit1.Clear;
sql:='insert into housetemp select * from house '+
'where (id in (select distinct room_id from room where room_id<>'''')) ';
LoginForm.ExecuteSQL('select distinct memozs from house '+
'where id in (select distinct room_id from room where room_id<>'''')');
loginform.dsQuery.First;
while not LoginForm.dsQuery.Eof do
begin
room:=LoginForm.dsQuery.Fields[0].AsString;
room:=Copy(room,1,Pos('@',room)-1);
str:=str+'(room='''+room+''') or ';
LoginForm.dsQuery.Next;
end;
LoginForm.dsQuery.Close;
delete(str,length(str)-3,4);
sql:=sql+' and ('+str+')';
LoginForm.ExecuteSQL(sql);
if MainForm.roomnum<>'' then
begin
LoginForm.ExecuteSQL('insert into housetest select * from housetemp '+
'where id in (select distinct room_id from room where room_num='''+MainForm.roomnum+''')');
LoginForm.ExecuteSQL('delete from housetemp '+
'where id in (select distinct room_id from room where room_num='''+MainForm.roomnum+''')');
end;
Self.ds2.Close;
self.ds2.CommandText:='select * from housetemp order by room';
self.ds2.Open;
Self.ClientDataSet1.Close;
self.ClientDataSet1.CommandText:='select * from housetest order by room';
self.ClientDataSet1.Open;
end;
procedure THBZDForm.ds2AfterScroll(DataSet: TDataSet);
begin
Self.suiEdit1.Text:=ds2.fieldbyname('room').AsString;
self.Label1.Caption:=ds2.fieldbyname('memozs').AsString;
end;
procedure THBZDForm.FormActivate(Sender: TObject);
begin
Self.suiEdit1.SetFocus;
end;
procedure THBZDForm.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin
self.Label3.Caption:=ClientDataSet1.fieldbyname('room').AsString+':'+ClientDataSet1.fieldbyname('id').AsString;
end;
procedure THBZDForm.suiArrowButton1Click(Sender: TObject);
begin
LoginForm.ExecuteSQL('insert into housetest select * from housetemp '+
'where id in (select distinct room_id from room '+
'where room_num='''+self.ds2.fieldbyname('room').AsString+''')');
LoginForm.ExecuteSQL('delete from housetemp '+
'where id in (select distinct room_id from room '+
'where room_num='''+self.ds2.fieldbyname('room').AsString+''')');
Self.ds2.Close;
self.ds2.CommandText:='select * from housetemp order by room';
self.ds2.Open;
if self.ds2.RecordCount=0 then
self.Label1.Caption:='';
Self.ClientDataSet1.Close;
self.ClientDataSet1.CommandText:='select * from housetest order by room';
self.ClientDataSet1.Open;
if self.ClientDataSet1.RecordCount=0 then
self.Label3.Caption:='';
end;
procedure THBZDForm.suiArrowButton2Click(Sender: TObject);
begin
LoginForm.ExecuteSQL('insert into housetemp select * from housetest '+
'where id in (select distinct room_id from room '+
'where room_num='''+self.ClientDataSet1.fieldbyname('room').AsString+''')');
LoginForm.ExecuteSQL('delete from housetest '+
'where id in (select distinct room_id from room '+
'where room_num='''+self.ClientDataSet1.fieldbyname('room').AsString+''')');
Self.ds2.Close;
self.ds2.CommandText:='select * from housetemp order by room';
self.ds2.Open;
if self.ds2.RecordCount=0 then
self.Label1.Caption:='';
Self.ClientDataSet1.Close;
self.ClientDataSet1.CommandText:='select * from housetest order by room';
self.ClientDataSet1.Open;
if self.ClientDataSet1.RecordCount=0 then
self.Label3.Caption:='';
end;
procedure THBZDForm.suiEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Self.ds2.Locate('room',suiEdit1.Text,[]);
end;
procedure THBZDForm.btn1Click(Sender: TObject);
var
id,room:string;
list:string;
memo:string;
roomnum:string;
begin
if self.Label3.Caption='' then
exit;
id:=self.Label3.Caption;
room:=Copy(id,1,pos(':',id)-1);
roomnum:=room+';';
Delete(id,1,Pos(':',id));
self.ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
memo:=ClientDataSet1.fieldbyname('memozs').AsString;
Delete(memo,1,9);
if Self.ClientDataSet1.FieldByName('room').AsString<>room then
begin
roomnum:=roomnum+Self.ClientDataSet1.FieldByName('room').AsString+';';
list:=list+memo;
end
else
list:=memo+list;
loginform.ExecuteSQL('update consume set Lbxf_xfbh='''+id+''' '+
'where Lbxf_xfbh='''+Self.ClientDataSet1.FieldByName('id').AsString+'''');
loginform.ExecuteSQL('update house set id='''+id+''' '+
'where id='''+Self.ClientDataSet1.FieldByName('id').AsString+'''');
loginform.ExecuteSQL('update room set room_id='''+id+''' '+
'where room_id='''+Self.ClientDataSet1.FieldByName('id').AsString+'''');
loginform.ExecuteSQL('update yjgl set yj_bh='''+id+''' '+
'where yj_bh='''+Self.ClientDataSet1.FieldByName('id').AsString+'''');
ClientDataSet1.Next;
end;
loginform.ExecuteSQL('update house set memozs=''合并账单:'+list+''' where id='''+id+'''');
delete(roomnum,length(roomnum),1);
loginform.ExecuteSQL('insert into log '+
'values('''+formatdatetime('yyyy-mm-dd hh:nn:ss',now)+
''','''+loginform.userid+''','''+LoginForm.username+
''',''将房间【'+roomnum+'】账单合并,主房间为【'+room+'】'')');
MessageDlg('将房间【'+roomnum+'】账单合并,主房间为【'+room+'】!',mtConfirmation, [mbYes], 0);
close;
end;
procedure THBZDForm.dbgrd1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if dbgrd1.DataSource.DataSet.RecNo mod 2 = 0 theN
dbgrd1.Canvas.Brush.Color:=clSilver
else
dbgrd1.Canvas.Brush.Color:=clYellow;
dbgrd1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure THBZDForm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if DBGrid1.DataSource.DataSet.RecNo mod 2 = 0 theN
DBGrid1.Canvas.Brush.Color:=clSilver
else
DBGrid1.Canvas.Brush.Color:=clYellow;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -