📄 contract.~pas
字号:
unit Contract;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Mask, DBCtrls, ComCtrls,math, Grids, DBGrids, Buttons,
PublicUnit, jpeg;
type
TContractForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel4: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label8: TLabel;
Label7: TLabel;
Label10: TLabel;
Label12: TLabel;
Label13: TLabel;
Label11: TLabel;
Label15: TLabel;
DBMemo1: TDBMemo;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit9: TDBEdit;
DBEdit8: TDBEdit;
DBEdit12: TDBEdit;
DBEdit10: TDBEdit;
DBComboBox1: TDBComboBox;
ChoicedHouseCode: TListBox;
Panel3: TPanel;
DBNavigator1: TDBNavigator;
TabSheet2: TTabSheet;
Label16: TLabel;
Panel2: TPanel;
Label21: TLabel;
ContractTimed: TComboBox;
Label9: TLabel;
DBEdit7: TDBEdit;
Label18: TLabel;
Label20: TLabel;
Panel1: TPanel;
Label23: TLabel;
Label24: TLabel;
MustSum: TEdit;
NowSum: TEdit;
TabSheet3: TTabSheet;
Panel6: TPanel;
Label33: TLabel;
Label34: TLabel;
Label38: TLabel;
Label39: TLabel;
Label40: TLabel;
Label43: TLabel;
Label42: TLabel;
Label36: TLabel;
Label35: TLabel;
Label41: TLabel;
Label32: TLabel;
DBEdit22: TDBEdit;
DBEdit23: TDBEdit;
DBEdit29: TDBEdit;
DBEdit30: TDBEdit;
DBEdit31: TDBEdit;
DBMemo2: TDBMemo;
DBEdit21: TDBEdit;
DBEdit26: TDBEdit;
DBEdit24: TDBEdit;
DBEdit27: TDBEdit;
DBEdit25: TDBEdit;
Label14: TLabel;
DBEdit11: TDBEdit;
Panel5: TPanel;
Label22: TLabel;
ContractCutted: TComboBox;
Label37: TLabel;
DBEdit28: TDBEdit;
TabSheet4: TTabSheet;
Panel7: TPanel;
HeadLabel: TLabel;
Panel8: TPanel;
MainDBGrid: TDBGrid;
ChoiceHouse: TButton;
EmptyHouseCode: TListBox;
Panel9: TPanel;
Label1: TLabel;
Panel10: TPanel;
Label31: TLabel;
Panel11: TPanel;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
GroupBox1: TGroupBox;
MLabel: TLabel;
SearchContent: TComboBox;
BitBtn3: TBitBtn;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn4: TBitBtn;
FinishButton: TBitBtn;
SearchButton: TBitBtn;
ModifyButton: TBitBtn;
Label17: TLabel;
DBEdit32: TDBEdit;
Label19: TLabel;
Image1: TImage;
procedure FinishButtonClick(sender: tobject);
procedure SearchButtonClick(Sender: TObject);
procedure AddToChoicedHouse;
procedure Add_ModifyHTable;
procedure Add_ModifyRTable;
function CheckNewContract:boolean;
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure FormShow(Sender: TObject);
procedure ChoiceHouseClick(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
procedure ContractTimedChange(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure ContractCuttedChange(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure ModifyButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ContractForm : TContractForm;
addrecord : Boolean;
number : integer;
ContractNum : string;
NewContractNo : integer;
implementation
uses DataModule;
{$R *.DFM}
procedure TContractForm.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
var
i : integer;
begin
case button of
nbFirst,nbPrior,nbNext,nbLast: AddToChoicedHouse;
nbInsert :
begin
addrecord:=True;
DataContrls.CTable.Edit;
DBEdit1.Enabled:=True;
DBEdit1.Text:=IntToStr(NewContractNo);
DBEdit1.Enabled:=False;
DBEdit5.Text:=CalTodayDate; // 计算起租日期:今日日期
ChoicedHouseCode.Clear; // 清空ChoicedHouseCode
EmptyHouseCode.Clear; // 清空EmptyHouseCode
with DataContrls.HTable do
begin
if Active<>True then Open;
First;
while not EOF do
begin
if FieldByName('状态').AsString ='闲置' then
EmptyHouseCode.Items.Append(FieldByName('房屋号').AsString);
Next;
end;
end;
DBNavigator1.VisibleButtons := [nbPost,nbCancel];
end;
nbPost :
begin
if addrecord then
begin
if CheckNewContract then
begin
Add_ModifyHTable; // 自动完成房屋信息修改
Add_ModifyRTable; // 自动在租金数据表中增加租金交取信息
DBNavigator1.VisibleButtons := [nbFirst,nbPrior,nbNext,nbLast,nbInsert,
nbDelete,nbPost,nbCancel];
addrecord:=False; // 标识增加新合同状态结束
Inc(NewContractNo); // 新合同号增加1
end
else exit; // 退出确认,完成还没填写的必填项
end;
end;
nbCancel :
begin
if addrecord then
begin
addrecord:=False;
DBNavigator1.VisibleButtons := [nbFirst,nbPrior,nbNext,nbLast,nbInsert,
nbDelete,nbPost,nbCancel];
end;
end;
nbDelete :
begin
for i:=0 to ChoicedHouseCode.Items.count-1 do
begin
with DataContrls.HTable do
begin
Locate('编号',ChoicedHouseCode.Items[i],[]);
Edit;
FieldByName('状态').AsString:='';
FieldByName('合同号').AsString:='';
Post;
end;
end;
end;
end;
end;
procedure TContractForm.AddToChoicedHouse;
begin
ChoicedHouseCode.clear;
DataContrls.HTable.open;
DataContrls.HTable.First;
while not DataContrls.HTable.Eof do
begin
if DataContrls.HTable.FieldByName('合同号').AsString =dbedit1.text then
ChoicedHouseCode.Items.Append(DataContrls.HTable.FieldByName('房屋号').AsString);
DataContrls.HTable.Next;
end;
DataContrls.HTable.Close;
end;
procedure TContractForm.FormShow(Sender: TObject);
begin
addrecord:=false;
AddToChoicedHouse;
DataContrls.CTable.Last; //计算新合同号
NewContractNo:=DataContrls.CTable.FieldValues['合同号']+1;
DataContrls.CTable.First;
end;
procedure TContractForm.ChoiceHouseClick(Sender: TObject);
var
i:integer;
begin
if addrecord then
for i:=0 to EmptyHouseCode.Items.Count-1 do
if EmptyHouseCode.Selected[i] then
begin
ChoicedHouseCode.Items.Append(EmptyHouseCode.Items[i]);
end;
end;
procedure TContractForm.Add_ModifyHTable;
var
i: integer;
begin
if (ChoicedHouseCode.Items.Count>0)and (DBEdit4.Text<>'') then
begin
DataContrls.HTable.Open;
for i:=0 to ChoicedHouseCode.Items.Count-1 do
begin
DataContrls.HTable.Locate('房屋号',ChoicedHouseCode.Items[i],[]);
DataContrls.HTable.Edit;
DataContrls.HTable.FieldByName('合同号').AsString:=DBEdit1.Text;
DataContrls.HTable.FieldByName('状态').AsString:='出租';
DataContrls.HTable.Post;
end;
DataContrls.HTable.Close;
end;
end;
function TContractForm.CheckNewContract:boolean;
var
sucess : Boolean;
begin
sucess:=True;
with DataContrls.CTable do
begin
if DBEdit4.Text ='' then // 租期
sucess:=False;
if DBComboBox1.Text ='' then // 付款期限
sucess:=False;
if DBEdit7.Text='' then // 月租金
sucess:=False;
if ChoicedHouseCode.Items.Count=0 then // 租用房屋号
sucess:=False;
if not sucess then
ShowMessage('新合同中红色项为必填项!请在新合同中补上未填的红色项.');
DBNavigator1.VisibleButtons := [nbFirst,nbPrior,nbNext,nbLast,nbInsert,
nbDelete,nbPost,nbCancel];
end;
CheckNewContract:=sucess;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -