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

📄 contract.~pas

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

procedure TContractForm.Add_ModifyRTable;
var
  times,per,year,month,i:integer;
  {times: zuqi; per: fukuanqixian; }
  sum: double;
  starttime,day,temps:string;
begin
  per:=1;

  with  DataContrls.CTable do
    begin
      Edit;
      times:=StrToInt(DBEdit4.Text);   // 租期字段
      temps:=DBComboBox1.Text;         // 付款期限字段
      if temps= '按月' then  per:=1
      else if temps= '按季' then  per:=3
           else if temps= '半年' then  per:=6
                else  if temps= '按年' then  per:=12;

      starttime:=DBEdit5.Text;  // 起租日期字段
      year:=StrToInt(starttime[1]+starttime[2]+starttime[3]+starttime[4]);
      month:=StrToInt(starttime[5]+starttime[6]);
      day:=starttime[7]+starttime[8];

      sum:=0;
      for i:=0 to (times div per)-1 do
      begin
         with  DataContrls.RTable do
         begin
           Insert;
           FieldByName('合同号').AsString:=DBEdit1.Text;
           if month<10 then
              FieldByName('应收日期').AsString:=IntToStr(year)+'0'+IntToStr(month)+day
           else
              FieldByName('应收日期').AsString:=IntToStr(year)+IntToStr(month)+day;

           FieldByName('应收金额').AsInteger:=StrToInt(DBEdit7.Text)*per;  // 月租金*付款期限
           sum:=sum+StrToInt(DBEdit7.Text)*per;
           post

         end;

         if ((month+per) mod 12)=0 then       // 计算下一次交租金的时间:年和月
         begin
           year:=year+(month+per) div 12-1;
           month:=12;
         end
         else
         begin
           year:=year+(month+per) div 12;
           month:=(month+per) mod 12;
         end;
      end;

      if month<10 then
        DBEdit6.Text:=IntToStr(year)+'0'+IntToStr(month)+day   //到期日期
      else
        DBEdit6.Text:=IntToStr(year)+IntToStr(month)+day;

      DBEdit9.Text:=FloatToStr(sum);   // 租金总额
  end;
end;

procedure TContractForm.TabSheet2Show(Sender: TObject);
var
  today: integer;
begin
  today:=strtoint(CalTodayDate);
  with  DataContrls.CTable do
  begin
    ContractTimed.clear;
    ContractCutted.clear;
    Disablecontrols;
    First;
    while not Eof do
    begin
      if (FieldByName('到期日期').Asstring <> '')
           and (FieldByName('标志').Asstring <> '2') then
      begin
        ContractCutted.Items.Append(FieldByName('合同号').Asstring);

        if FieldByName('到期日期').Asinteger <=today  then
          ContractTimed.Items.Append(FieldByName('合同号').Asstring);
      end;
      Next;
    end;
    EnableControls;
  end;
end;

procedure TContractForm.ContractTimedChange(Sender: TObject);
var
 sum:double;
begin
  sum:=0;

  DataContrls.CTable.Locate('合同号',ContractTimed.text,[]);
  MustSum.text:=DataContrls.CTable.FieldByName('租金总额').Asstring;

  with  DataContrls.RTable do
  begin
    Disablecontrols;
    First;
    while not Eof do
    begin
      if (FieldByName('合同号').Asstring =ContractTimed.Text) and
          (FieldByName('实收金额').Asstring<>'')then
        sum:=sum+FieldByName('实收金额').AsFloat;
      Next;
    end;
    EnableControls;

    NowSum.Text:=FloatToStr(sum);

    ContractNum:=ContractTimed.Text;
  end;
end;

procedure TContractForm.FinishButtonClick(Sender: TObject);
var
  temp:string;
begin
  if ContractNum<>''then     // 是否已经选了要处理合同号
  begin
    with DataContrls.CTable do
    begin
      Locate('合同号',ContractNum,[]);
      Edit;
      FieldByName('标志').Asstring:='2';     //已不是有效合同
      Post;
    end;

    with  DataContrls.HTable do     // 修改房产数据表中相关数据
    begin
      Close;
      Open;
      Disablecontrols;
      First;
      while not Eof do
      begin
        if (FieldByName('合同号').Asstring =ContractNum) then
        begin
          Edit;
          FieldByName('合同号').Asstring:='';
          FieldByName('状态').Asstring:='';
          Post;
          DataContrls.CTable.Edit;
          temp:=' '+DataContrls.CTable.FieldByName('备注').Asstring;
          DataContrls.CTable.FieldByName('备注').Asstring:=temp
                +' '+FieldByName('房屋号').Asstring+' ';
          DataContrls.CTable.Post;
       end;
       Next;
     end;
     Enablecontrols;
    end;

    with  DataContrls.RTable do     // 修改租金数据表中相关数据
    begin
      Close;
      Open;
      Disablecontrols;
      First;
      while not Eof do
      begin
        if (FieldByName('合同号').Asstring =ContractNum) then
        begin
          Edit;
          FieldByName('标志').Asstring:='2';
          Post;
        end;
       Next;
     end;
     Enablecontrols;
    end;

    ShowMessage('此合同已为无效合同,数据已备案.');
  end;
end;

procedure TContractForm.SearchButtonClick(Sender: TObject);
begin
  if SearchContent.text<>'' then
  begin
    with DataContrls.CTable do
    begin
      Disablecontrols;
      case  number  of
        1  :
          if Locate('合同号',SearchContent.Text,[]) then
             EnableControls
          else ShowMessage('没有此合同号!');
        2  :
          if Locate('联系人',SearchContent.Text,[]) then
             EnableControls
          else   ShowMessage('没有此租主!');
        3  :
          if Locate('乙方单位',SearchContent.Text,[]) then
             EnableControls
          else  ShowMessage('没有此单位!');
      end;
    end;
  end;
end;

procedure TContractForm.RadioButton1Click(Sender: TObject);
begin
  number:=1;   // 按合同号查询
  MLabel.caption:='合同号:';
  with DataContrls.CTable do
  begin
    DisableControls;
    SearchContent.clear;
    First;
    while not EOF do
    begin
      SearchContent.Items.Append(FieldByName('合同号').AsString);
      Next;
    end;
    EnableControls;
  end;
end;

procedure TContractForm.RadioButton2Click(Sender: TObject);
begin
  number:=2;  // 按租主名查询
  MLabel.caption:='租主姓名:';
  with DataContrls.CTable do
  begin
    DisableControls;
    SearchContent.Clear;
    First;
    while not EOF do
    begin
      SearchContent.Items.Append(FieldByName('联系人').AsString);
      Next;
    end;
    EnableControls;
  end;
end;

procedure TContractForm.RadioButton3Click(Sender: TObject);
begin
  number:=3;  // 按租用单位查询
  MLabel.caption:='租用单位:';
  with DataContrls.CTable do
  begin
    DisableControls;
    SearchContent.Clear;
    First;
    while not EOF do
    begin
      SearchContent.Items.Append(FieldByName('乙方单位').Asstring);
      Next;
    end;
    EnableControls;
  end;
end;

procedure TContractForm.ContractCuttedChange(Sender: TObject);
var
 sum:double;
begin
  sum:=0;
  ContractNum:=ContractCutted.text;

  DataContrls.CTable.Locate('合同号',ContractNum,[]);
  MustSum.text:=DataContrls.CTable.FieldByName('租金总额').AsString ;

  with  DataContrls.RTable do
  begin
    Disablecontrols;
    First;
    while not Eof do
    begin
      if (FieldByName('合同号').Asstring =ContractCutted.text) and
          (FieldByName('实收金额').AsString<>'')then
        sum:=sum+FieldByName('实收金额').Asfloat;
      Next;
    end;
    EnableControls;

    NowSum.text:=floattostr(sum);
  end;
end;

procedure TContractForm.BitBtn1Click(Sender: TObject);
begin
  Close;
end;

procedure TContractForm.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

procedure TContractForm.BitBtn3Click(Sender: TObject);
begin
  Close;
end;

procedure TContractForm.BitBtn4Click(Sender: TObject);
begin
  Close;
end;

procedure TContractForm.ModifyButtonClick(Sender: TObject);
begin
  MainDBGrid.ReadOnly:=False;
end;

end.







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -