📄 cfzdunit.pas
字号:
unit CFZDUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SUIListBox, ComCtrls, SUITreeView, SUIButton,
ExtCtrls, SUIImagePanel;
type
TCFZDForm = class(TForm)
suiPanel2: TsuiPanel;
suiPanel1: TsuiPanel;
btn1: TsuiButton;
btn2: TsuiButton;
suiTreeView2: TsuiTreeView;
suiListBox1: TsuiListBox;
btn3: TsuiButton;
btn4: TsuiButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
CFZDForm: TCFZDForm;
implementation
uses LoginUnit, MainUnit;
{$R *.dfm}
procedure TCFZDForm.FormCreate(Sender: TObject);
var
sql:string;
node:TTreeNode;
temp:string;
begin
sql:='select distinct memozs,id from house '+
'where (id in (select distinct room_id from room where room_id<>'''')) '+
'order by id,memozs';
LoginForm.ExecuteSQL(sql);
LoginForm.dsQuery.First;
while not LoginForm.dsQuery.Eof do
begin
temp:=LoginForm.dsQuery.Fields[0].AsString;
node:=self.suiTreeView2.Items.Add(nil,Copy(temp,1,Pos('@',temp)-1)+':'+LoginForm.dsQuery.Fields[1].AsString);
Delete(temp,1,Pos('@',temp));
while Pos(';',temp)>0 do
begin
Self.suiTreeView2.Items.AddChild(node,Copy(temp,1,Pos('@',temp)-1));
Delete(temp,1,Pos('@',temp));
end;
LoginForm.dsQuery.Next;
end;
LoginForm.dsQuery.Close;
self.suiTreeView2.Items.EndUpdate;
self.suiListBox1.Clear;
end;
procedure TCFZDForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MainForm.RefrushRoomState(0);
MainForm.Enabled:=true;
end;
procedure TCFZDForm.btn2Click(Sender: TObject);
begin
Close;
end;
procedure TCFZDForm.FormActivate(Sender: TObject);
var
node:TTreeNode;
begin
if MainForm.roomnum<>'' then
begin
node:=self.suiTreeView2.Items.GetFirstNode;
while node<>nil do
begin
if Pos(MainForm.roomnum,node.Text)>0 then
begin
self.suiTreeView2.SetFocus;
node.Selected:=True;
Break;
end;
node:=node.GetNext;
end;
end;
end;
procedure TCFZDForm.btn3Click(Sender: TObject);
var
node:TTreeNode;
id:string;
begin
node:=suiTreeView2.Selected;
if node.Level>0 then
begin
id:=node.Parent.Text;
self.suiListBox1.Items.Add(id+':'+node.Text);
node.Delete;
end
else
MessageDlg('主房间账单不可执行拆分操作!',mtConfirmation, [mbYes], 0);
end;
procedure TCFZDForm.btn1Click(Sender: TObject);
var
index:Integer;
info:string;
room,roomid,roomnum:string;
roomstate:string;
roommemo:string;
time:string;
id:string;
begin
time:=formatdatetime('yyyy-mm-dd hh:nn:ss',now);
for index:=0 to suiListBox1.Items.Count-1 do
begin
roomnum:=SUIListBox1.Items.Strings[index];
room:=Copy(roomnum,1,Pos(':',roomnum)-1);
Delete(roomnum,1,Pos(':',roomnum));
roomid:=Copy(roomnum,1,Pos(':',roomnum)-1);
Delete(roomnum,1,Pos(':',roomnum));
loginform.ExecuteSQL('select memozs from house where id='''+roomid+''' and room='''+room+'''');
roommemo:=LoginForm.dsQuery.Fields[0].AsString;
LoginForm.dsQuery.Close;
Delete(roommemo,Pos(roomnum,roommemo),Length(roomnum)+1);
loginform.ExecuteSQL('select room_state from room where room_num='''+roomnum+'''');
roomstate:=LoginForm.dsQuery.Fields[0].AsString;
LoginForm.dsQuery.Close;
if roomstate='团体' then
id:='TT'+formatdatetime('yyyymmddhhnnss',now)
else
id:='SD'+formatdatetime('yyyymmddhhnnss',now);
loginform.ExecuteSQL('update consume set Lbxf_xfbh='''+id+''' '+
'where Lbxf_xfbh='''+roomid+''' and lbxf_sph='''+roomnum+'''');
loginform.ExecuteSQL('update house set id='''+id+''',memozs=''拆分账单:'+roomnum+';'' '+
'where id='''+roomid+''' and room='''+roomnum+'''');
loginform.ExecuteSQL('update house set memozs='''+roommemo+''' '+
'where id='''+roomid+''' and room<>'''+roomnum+'''');
loginform.ExecuteSQL('update room set room_id='''+id+''' where room_num='''+roomnum+'''');
loginform.ExecuteSQL('update yjgl set yj_bh='''+id+''' '+
'where yj_bh='''+roomid+''' and yj_sph='''+roomnum+'''');
loginform.ExecuteSQL('insert into log '+
'values('''+time+''','''+loginform.userid+''','''+LoginForm.username+
''',''账单由房间【'+room+'】拆分到【'+roomnum+'】'')');
if index=suiListBox1.Items.Count-1 then
info:=info+'账单由房间【'+room+'】拆分到【'+roomnum+'】'
else
info:=info+'账单由房间【'+room+'】拆分到【'+roomnum+'】'+#13#10;
end;
if info<>'' then
begin
MessageDlg(info,mtConfirmation, [mbYes], 0);
close;
end
else
MessageDlg('尚无需要拆分账单信息!',mtConfirmation, [mbYes], 0);
end;
procedure TCFZDForm.btn4Click(Sender: TObject);
var
index:integer;
room:string;
node:TTreeNode;
begin
for index:=suiListBox1.Items.Count-1 downto 0 do
if suiListBox1.Selected[index] then
begin
room:=SUIListBox1.Items.Strings[index];
suiListBox1.Items.Delete(index);
node:=self.suiTreeView2.Items.GetFirstNode;
while node<>nil do
begin
if Pos(node.Text,room)>0 then
begin
Delete(room,Pos(node.Text,room),Length(node.Text)+1);
self.suiTreeView2.Items.AddChild(node,room);
Break;
end;
node:=node.GetNext;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -