📄 pas_houserent.pas
字号:
unit pas_houseRent;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, ComCtrls, Buttons,
ToolWin;
type
TForm_constract = class(TForm)
DBGrid: TDBGrid;
ToolBar1: TToolBar;
select: TSpeedButton;
ToolButton5: TToolButton;
add: TSpeedButton;
ToolButton3: TToolButton;
selecteveryth: TSpeedButton;
ToolButton7: TToolButton;
valid: TSpeedButton;
ToolButton1: TToolButton;
unValid: TSpeedButton;
setUnvalid: TSpeedButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
cb_ho: TComboBox;
cb_no: TComboBox;
cb_dl: TComboBox;
dtp_start: TDateTimePicker;
dtp_end: TDateTimePicker;
edit_rentFee: TEdit;
cb_unit: TComboBox;
edit_remarks: TEdit;
edit_contractNo: TEdit;
rb_kh: TRadioButton;
rb_fd: TRadioButton;
setvalid: TSpeedButton;
ToolButton6: TToolButton;
ToolButton8: TToolButton;
Label10: TLabel;
Label11: TLabel;
cb_depart: TComboBox;
Label12: TLabel;
cb_seller: TComboBox;
Label13: TLabel;
Label14: TLabel;
srhouse: TSpeedButton;
srkh: TSpeedButton;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton6: TSpeedButton;
Edit_times: TEdit;
sb_fksj: TSpeedButton;
Label15: TLabel;
Label16: TLabel;
DBGrid1: TDBGrid;
SpeedButton5: TSpeedButton;
sp_noT: TSpeedButton;
Label17: TLabel;
L_num: TLabel;
procedure cb_hoDropDown(Sender: TObject);
procedure cb_noDropDown(Sender: TObject);
procedure cb_dlDropDown(Sender: TObject);
procedure addClick(Sender: TObject);
procedure set1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure rb_khClick(Sender: TObject);
procedure rb_fdClick(Sender: TObject);
procedure cb_unitDropDown(Sender: TObject);
procedure selecteverythClick(Sender: TObject);
procedure validClick(Sender: TObject);
procedure unValidClick(Sender: TObject);
procedure setvalidClick(Sender: TObject);
procedure setUnvalidClick(Sender: TObject);
procedure DBGridCellClick(Column: TColumn);
procedure DBGridDblClick(Sender: TObject);
procedure cb_departDropDown(Sender: TObject);
procedure cb_sellerDropDown(Sender: TObject);
procedure srkhClick(Sender: TObject);
procedure srhouseClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure selectClick(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure sb_fksjClick(Sender: TObject);
procedure Edit_timesKeyPress(Sender: TObject; var Key: Char);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SpeedButton5Click(Sender: TObject);
procedure sp_noTClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_constract: TForm_constract;
implementation
uses pas_dm,pas_login, pas_landlord, pas_client, pas_house, pas_deputy,
pas_depart, pas_seller, pas_inputtimes;
{$R *.dfm}
procedure TForm_constract.cb_hoDropDown(Sender: TObject);
var
s:string;
begin
try
with dm.query_houserent do
begin
close;
sql.Clear;
s:='select h_no from house ';
sql.Add(s);
open;
cb_ho.Items.Clear;
while not dm.query_houserent.Eof do
begin
cb_ho.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end;
procedure TForm_constract.cb_noDropDown(Sender: TObject);
var
s:string;
begin
if (rb_kh.Checked) then
begin
try
with dm.gg do
begin
close;
sql.Clear;
s:='select c_no from client ';
sql.Add(s);
open;
cb_no.Items.Clear;
while not dm.gg.Eof do
begin
cb_no.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end
else
begin
try
with dm.gg do
begin
close;
sql.Clear;
s:='select l_no from landlord ';
sql.Add(s);
open;
cb_no.Items.Clear;
while not dm.gg.Eof do
begin
cb_no.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end;
end;
procedure TForm_constract.cb_dlDropDown(Sender: TObject);
var
s:string;
begin
try
with dm.gg do
begin
close;
sql.Clear;
s:='select d_no from deputy ';
sql.Add(s);
open;
cb_dl.Items.Clear;
while not dm.gg.Eof do
begin
cb_dl.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end;
procedure TForm_constract.addClick(Sender: TObject);
var
s:string;
begin
if (cb_ho.Text='') or (cb_no.Text='') or (cb_unit.Text='') or
(edit_contractNo.Text='') or (edit_contractNo.Text='') then
begin
showmessage('除备注外不能为空,请重输入!');
exit;
end;
if(rb_kh.Checked) then
begin
try
with dm.Query_houserent do
begin
close;
sql.Clear;
sql.Text:='select ho_no from house_histry where ho_contractno='''+edit_contractNo.Text+'''and ho_rentorno=1';
open;
if dm.query_houserent.RecordCount>0 then
begin
showmessage('有相同的合同号,请重输入');
exit;
end;
close;
sql.Clear;
s:='insert into house_histry(ho_contractno,ho_no,ho_client,ho_deputy,ho_starttime,'+
'ho_leavetime,ho_releasetime,ho_rent,ho_rentunit,ho_rentorno,ho_operator,'+
'ho_now,ho_remarks,ho_validorno,ho_depart,ho_seller) values('''+
trim(edit_contractNo.Text)+''','''+trim(cb_ho.Text)+''','''+trim(cb_no.Text)+''','''+trim(cb_dl.Text)+''','''+
datetostr(dtp_start.DateTime)+''','''+datetostr(dtp_end.DateTime)+''','''+datetostr(dtp_end.DateTime)+''','''+
trim(edit_rentfee.Text)+''','''+trim(cb_unit.Text)+''',1,'''+trim(user)+''','''+FormatDateTime('yyyy-mm-dd hh:mm:ss',(now()))+
''','''+trim(edit_remarks.Text)+''',1,'''+trim(cb_depart.Text)+
''','''+trim(cb_seller.Text)+''')';
sql.Add(s);
ExecSQL;
close;
sql.Clear;
sql.Add('update house set h_sign=1 where h_no='''+trim(cb_ho.Text)+'''');//同时房间改为已租房
ExecSQL;
showmessage('添加'+edit_contractno.text+'成功');
select.Click;
end;
except
showmessage('添加失败');
end;
exit;
end;
if(rb_fd.Checked) then
begin
try
with dm.query_houserent do
begin
close;
sql.Clear;
sql.Text:='select ho_no from house_histry where ho_contractno='''+edit_contractNo.Text+'''and ho_rentorno=1';
open;
if dm.query_houserent.RecordCount>0 then
begin
showmessage('有相同的合同号,请重输入');
exit;
end;
close;
sql.Clear;
s:='insert into house_histry(ho_contractno,ho_no,ho_landlord,ho_deputy,ho_starttime,'+
'ho_leavetime,ho_releasetime,ho_rent,ho_rentunit,ho_rentorno,ho_operator,ho_now,ho_remarks,ho_validorno,ho_depart,ho_seller) values('''+
trim(edit_contractNo.Text)+''','''+trim(cb_ho.Text)+''','''+trim(cb_no.Text)+''','''+trim(cb_dl.Text)+''','''+
datetostr(dtp_start.DateTime)+''','''+datetostr(dtp_end.DateTime)+''','''+datetostr(dtp_end.DateTime)+''','''+
trim(edit_rentfee.Text)+''','''+trim(cb_unit.Text)+''',1,'''+trim(user)+''','''+FormatDateTime('yyyy-mm-dd hh:mm:ss',(now()))+
''','''+trim(edit_remarks.Text)+''',1,'''+trim(cb_depart.Text)+
''','''+trim(cb_seller.Text)+''')';
sql.Text:=s;
ExecSQL;
close;
sql.Clear;
sql.Add('update house set h_sign=1 where h_no='''+trim(cb_ho.Text)+'''');//同时房间改为已租房
ExecSQL;
showmessage('添加'+edit_contractno.text+'成功');
select.Click;
end;
except
showmessage('添加失败');
end;
exit;
end;
end;
procedure TForm_constract.set1Click(Sender: TObject);
var
s:string;
begin
if (cb_ho.Text='') or (cb_no.Text='') or (cb_dl.Text='') or (cb_unit.Text='') or
(edit_contractNo.Text='') or (edit_contractNo.Text='') then
begin
showmessage('除备注外不能为空,请重输入!');
exit;
end;
try
with dm.query_houserent do
begin
close;
sql.Clear;
s:='update house_histry set ho_no='''+trim(cb_ho.text)+''',ho_client='''+trim(cb_no.text)+
''',ho_deputy='''+trim(cb_dl.Text)+''',ho_starttime='''+datetostr(dtp_start.DateTime)+
''',ho_leavetime='''+datetostr(dtp_end.DateTime)+''',ho_rent='''+edit_contractNo.Text+
''',ho_rentunit='''+trim(cb_unit.Text)+
''',ho_remarks='''+trim(edit_remarks.Text)+''' where ho_contractno='''+trim(edit_contractNo.text)+'''and ho_rentorno=1';
sql.Add(s);
execsql;
showmessage('修改成功');
end;
except
showmessage('修改失败');
end;
end;
procedure TForm_constract.FormShow(Sender: TObject);
begin
dtp_start.DateTime:=now();
dtp_end.DateTime:=now();
rb_kh.SetFocus;
end;
procedure TForm_constract.rb_khClick(Sender: TObject);
begin
label2.Caption:='客户编号';
end;
procedure TForm_constract.rb_fdClick(Sender: TObject);
begin
label2.Caption:='房东编号';
end;
procedure TForm_constract.cb_unitDropDown(Sender: TObject);
var
s:string;
begin
try
with dm.aq1 do
begin
close;
sql.Clear;
s:='select ru_name from rentunit ';
sql.Add(s);
open;
cb_unit.Items.Clear;
while not dm.aq1.Eof do
begin
cb_unit.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end;
procedure TForm_constract.selecteverythClick(Sender: TObject);
begin
try
with dm.query_houserent do
begin
close;
sql.clear;
sql.Text:='select ho_contractNo 合同号,ho_no 房间编号,ho_landlord 房东编号,ho_client 客户编号,ho_deputy 代理人,ho_starttime 合同开始时间,ho_leavetime 合同结束时间,ho_rent 房租,ho_rentunit 房租单位,ho_remarks 备注 from house_histry order by ho_contractno';
open;
end;
except
showmessage('查询失败');
end;
end;
procedure TForm_constract.validClick(Sender: TObject);
begin
try
with dm.query_houserent do
begin
close;
sql.clear;
sql.Text:='select ho_contractNo 合同号,ho_no 房间编号,ho_landlord 房东编号,ho_client 客户编号,ho_deputy 代理人,ho_starttime 合同开始时间,ho_leavetime 合同结束时间,ho_rent 房租,ho_rentunit 房租单位,ho_remarks 备注 from house_histry where ho_validorno=1';
open;
end;
except
showmessage('查询失败');
end;
end;
procedure TForm_constract.unValidClick(Sender: TObject);
begin
try
with dm.query_houserent do
begin
close;
sql.clear;
sql.Text:='select ho_contractNo 合同号,ho_no 房间编号,ho_landlord 房东编号,ho_client 客户编号,ho_deputy 代理人,ho_starttime 合同开始时间,ho_leavetime 合同结束时间,ho_rent 房租,ho_rentunit 房租单位,ho_remarks 备注 from house_histry where ho_validorno=0';
open;
end;
except
showmessage('查询失败');
end;
end;
procedure TForm_constract.setvalidClick(Sender: TObject);
var
s:string;
begin
with pas_dm.DM.query_houserent do
begin
if IDOK=messagebox(handle,pchar('编号为 '+dbgrid.Fields[0].AsString+' 的合同将被设为无效'),'警告', MB_OKCANCEL)
then
begin
try
s:=dbgrid.Fields[0].AsString;
Close;
SQL.Clear;
SQL.Add('update house_histry set ho_validorno=0 where ho_contractno='''+s+'''');
ExecSQL;
except
showmessage('出错');
end;
if RowsAffected=1 then
begin
showmessage(s+'设置无效成功');
end;
end;
end;
speedbutton4.Click;
end;
procedure TForm_constract.setUnvalidClick(Sender: TObject);
var
s:string;
begin
with pas_dm.DM.query_houserent do
begin
if IDOK=messagebox(handle,pchar('编号为 '+dbgrid.Fields[0].AsString+' 的合同将被设为有效'),'警告', MB_OKCANCEL)
then
begin
try
s:=dbgrid.Fields[0].AsString;
Close;
SQL.Clear;
SQL.Add('update house_histry set ho_validorno=1 where ho_contractno='''+s+'''');
ExecSQL;
except
showmessage('出错');
end;
if RowsAffected=1 then
begin
showmessage(s+'设置有效成功');
end;
end;
end;
speedbutton4.Click;
end;
procedure TForm_constract.DBGridCellClick(Column: TColumn);
begin
with pas_dm.DM.query_houserent do
begin
if dbgrid.FieldCount=0 then
begin
showmessage('没有打开数据库');
exit;
end;
if dbgrid.Fields[0].AsString='' then
begin
showmessage('数据库没有数据');
exit;
end;
if dbgrid.FieldCount>10
then
begin
edit_contractno.Text:=fields.Fields[0].AsString;
cb_ho.Text:=fields.Fields[1].AsString;
label2.caption:='房东客户编号';
cb_no.Text:=fields.Fields[2].AsString+' '+fields.Fields[3].AsString;
cb_dl.Text:=fields.Fields[4].AsString;
dtp_start.DateTime:=fields.Fields[5].AsDateTime;
dtp_end.DateTime:=fields.Fields[6].AsDateTime;
edit_rentfee.text:=fields.Fields[7].AsString;
cb_unit.Text:=fields.Fields[8].AsString;
edit_remarks.text:=fields.Fields[9].AsString;
end
else
begin
edit_contractno.Text:=fields.Fields[0].AsString;
cb_ho.Text:=fields.Fields[1].AsString;
cb_no.Text:=fields.Fields[2].AsString;
cb_dl.Text:=fields.Fields[3].AsString;
dtp_start.DateTime:=fields.Fields[4].AsDateTime;
dtp_end.DateTime:=fields.Fields[5].AsDateTime;
edit_rentfee.text:=fields.Fields[6].AsString;
cb_unit.Text:=fields.Fields[7].AsString;
edit_remarks.text:=fields.Fields[8].AsString;
end;
sb_fksj.Click;
end;
end;
procedure TForm_constract.DBGridDblClick(Sender: TObject);
var
s:string;
begin
s:='合同编号:'+dbgrid.Fields[0].AsString+#13+
'房子编号:'+dbgrid.Fields[1].AsString+#13
+dbgrid.Fields[2].AsString+#13
+dbgrid.Fields[3].AsString+#13
+dbgrid.Fields[4].AsString+#13
+dbgrid.Fields[5].AsString+#13
+dbgrid.Fields[6].AsString+#13
+dbgrid.Fields[7].AsString+#13
+dbgrid.Fields[8].AsString+#13;
if dbgrid.FieldCount>9
then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -