⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contract.~pas

📁 学校里做课程设计的东西,在delphi环境下运行,采用Sql2000数据库
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
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 + -