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

📄 searchbyinfringeunit.pas

📁 短小而实用的房地产销售管理软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
Unit SearchByInfringeUnit;

Interface

Uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, LbSpeedButton, ComCtrls, ExtCtrls, StdCtrls, AAFont, AACtrls,
   DB, ADODB, Grids, DBGridEh, RealOneProgressBar, DBCtrls, LbButton;

Type
   tSearchByInfringeForm = Class(TForm)
      AALabel1: TAALabel;
      Panel2: TPanel;
      Splitter3: TSplitter;
      Splitter2: TSplitter;
      Splitter4: TSplitter;
      DBGridEH1: TDBGridEh;
      DBGridEh2: TDBGridEh;
      DBGridEh3: TDBGridEh;
      DataSource1: TDataSource;
      ADOQuery1: TADOQuery;
      DataSource2: TDataSource;
      ADOQuery2: TADOQuery;
      DataSource3: TDataSource;
      ADOQuery3: TADOQuery;
      Panel1: TPanel;
      Splitter1: TSplitter;
      Panel3: TPanel;
      LbSpeedButton2: TLbSpeedButton;
      LbSpeedButton1: TLbSpeedButton;
      radiogroup1: TRadioGroup;
      RadioGroup2: TRadioGroup;
      CheckBox1: TCheckBox;
      Panel4: TPanel;
      LbSpeedButton3: TLbSpeedButton;
      SaveDialog1: TSaveDialog;
      DBGridEh4: TDBGridEh;
      ADOQuery4: TADOQuery;
      DataSource4: TDataSource;
      Panel5: TPanel;
      AALabel2: TAALabel;
      DBMemo1: TDBMemo;
      LbButton1: TLbButton;
      RealOneBar1: TRealOneProgressBar;
      Function GetLeaserName(CoName, CastName: String): String;
      Function GetManName(CoName, CastName: String): String;
      Procedure AppendLease;            //租赁
      Procedure AppendMortgage;         //拆迁
      Procedure AppendStages;           //预售
      Procedure FlashWYB;
      Procedure ClearWYB;               //清空违约查询表
      Procedure FormClose(Sender: TObject; Var Action: TCloseAction);
      Procedure LbSpeedButton2Click(Sender: TObject);
      Procedure DBGridEh1CellClick(Column: TColumnEh);
      Procedure DBGridEh2CellClick(Column: TColumnEh);
      Procedure FormCreate(Sender: TObject);
      Procedure ADOQuery1AfterScroll(DataSet: TDataSet);
      Procedure ADOQuery2AfterScroll(DataSet: TDataSet);
      Procedure LbSpeedButton3Click(Sender: TObject);
      Procedure LbButton1Click(Sender: TObject);
      Procedure LbSpeedButton1Click(Sender: TObject);
      Procedure DBGridEh4DblClick(Sender: TObject);
   Private
    { Private declarations }
   Public
    { Public declarations }
   End;

Var
   SearchByInfringeForm: tSearchByInfringeForm;

Implementation
Uses DM, PUBFunction, ViewUnitUnit;
{$R *.dfm}

Procedure tSearchByInfringeForm.FormClose(Sender: TObject;
   Var Action: TCloseAction);
Begin
   ClearWYB;
   Application.ProcessMessages;
   Action := cafree;
   SearchByInfringeForm := Nil;
End;

Procedure tSearchByInfringeForm.LbSpeedButton2Click(Sender: TObject);
Begin

   Close;
End;

Procedure tSearchByInfringeForm.DBGridEh1CellClick(Column: TColumnEh);
Begin
   With ADOQuery2 Do Begin
      sql.Text :=
         'select * FROM 项目信息表 WHERE 公司编号=''' +
         ADOQuery1.fieldbyname('公司编号').Text + '''';
      open;

   End;
   DBGridEh2CellClick(DBGridEh2.Columns.Items[0]);
End;

Procedure tSearchByInfringeForm.DBGridEh2CellClick(Column: TColumnEh);
Begin
   With ADOQuery3 Do Begin
      sql.Text :=
         'SELECT * from 单体信息表 WHERE 公司编号=''' +
         ADOQuery1.fieldbyname('公司编号').Text + ''' and 项目编号=''' +
         ADOQuery2.fieldbyname('项目编号').Text + '''';
      open;

   End;
   CheckBox1.Caption := '查询整个[' + ADOQuery2.fieldbyname('项目名称').Text +
      ']项目';
End;

Procedure tSearchByInfringeForm.FormCreate(Sender: TObject);
Begin
   ADOQuery1.Active := true;
   If ADOQuery1.recordcount > 0 Then
      DBGridEh1CellClick(DBGridEH1.Columns.Items[0]);
End;

Procedure tSearchByInfringeForm.ADOQuery1AfterScroll(DataSet: TDataSet);
Begin
   DBGridEh1CellClick(DBGridEH1.Columns.Items[0]);
End;

Procedure tSearchByInfringeForm.ADOQuery2AfterScroll(DataSet: TDataSet);
Begin
   DBGridEh2CellClick(DBGridEh2.Columns.Items[0]);
End;

Procedure tSearchByInfringeForm.LbSpeedButton3Click(Sender: TObject);
Begin
   SaveDBGridEhToFile(ADOQuery4, DBGridEh4, SaveDialog1);
End;

Procedure tSearchByInfringeForm.ClearWYB;
Var
   adotemp          : TADOQuery;
Begin
   adotemp := TADOQuery.create(self);
   With adotemp Do Begin
      connection := DM.DataModule2.ADOConnection1;
      Close;
      sql.Text := 'delete from 违约查询表';
      ExecSQL;
      Free;
   End;
End;

Procedure tSearchByInfringeForm.FlashWYB;
Var
   wstr1            : String;
Begin
   wstr1 := '  公司编号=''' + ADOQuery1.fieldbyname('公司编号').Text +
      ''' AND 项目编号=''' + ADOQuery2.fieldbyname('项目编号').Text + '''';

   If Not (CheckBox1.Checked) Then
      wstr1 := wstr1 + ' and 幢号=''' + ADOQuery3.fieldbyname('幢号').Text +
         '''';
   ADOQuery4.Close;
   ADOQuery4.sql.Text := 'select * from 违约查询表 where ' + wstr1;
   ADOQuery4.open;
End;

Procedure tSearchByInfringeForm.AppendMortgage; //拆迁
Var
   adotemp          : TADOQuery;
   i                : integer;
   wstr1            : String;
   D1, D2           : TDate;
   f1, f2           : double;
   b, D             : Boolean;
   SMEMO            : String;
Begin
   SMEMO := '';
   wstr1 := '  公司编号=''' + ADOQuery1.fieldbyname('公司编号').Text +
      ''' AND 项目编号=''' + ADOQuery2.fieldbyname('项目编号').Text + '''';

   If Not (CheckBox1.Checked) Then
      wstr1 := wstr1 + ' and 幢号=''' + ADOQuery3.fieldbyname('幢号').Text +
         '''';
   wstr1 := wstr1 + ' and 是否过期=FALSE';
   ADOQuery4.sql.Text := 'select * from 违约查询表';
   ADOQuery4.open;
   adotemp := TADOQuery.create(self);
   With adotemp Do Begin
      connection := DM.DataModule2.ADOConnection1;
      sql.Text := 'select * from 单元拆迁还建表 WHERE ' + wstr1;
      open;
      If recordcount > 0 Then
         For i := 0 To recordcount - 1 Do Begin
            b := false;
            D := false;
            If fieldbyname('付款方式').Text = '分期' Then Begin
               f1 := fieldbyname('一期款').AsFloat;
               f2 := fieldbyname('实际一期款').AsFloat;
               If f1 > f2 Then Begin    //一期款超额
                  SMEMO := SMEMO + '一期款欠额:' + FormatFloat('0.##', f1 - f2)
                     +
                     '元,';
                  b := true;
               End;

               D1 := StrToDateDef(fieldbyname('一期款日期').Text, 0);
               D2 := StrToDateDef(fieldbyname('实际一期款日期').Text, 0);

               If D2 > D1 Then Begin    //一期款超时
                  D := true;
                  SMEMO := SMEMO + '一期款超时:' + FormatFloat('##', D2 - D1) +
                     '天,';
               End;

               f1 := fieldbyname('二期款').AsFloat;
               f2 := fieldbyname('实际二期款').AsFloat;

               If f1 > f2 Then Begin
                  SMEMO := SMEMO + '二期款欠额:' + FormatFloat('0.##', f1 - f2)
                     +
                     '元,';
                  b := true;
               End;

               D1 := StrToDateDef(fieldbyname('二期款日期').Text, 0);
               D2 := StrToDateDef(fieldbyname('实际二期款日期').Text, 9);
               If D2 > D1 Then Begin
                  D := true;
                  SMEMO := SMEMO + '二期款超时:' + FormatFloat('##', D2 - D1) +
                     '天,';

               End;
               f1 := fieldbyname('三期款').AsFloat;
               f2 := fieldbyname('实际三期款').AsFloat;

               If f1 > f2 Then Begin
                  b := true;
                  SMEMO := SMEMO + '三期款欠额:' + FormatFloat('0.##', f1 - f2)
                     +
                     '元,';
               End;

               D1 := StrToDateDef(fieldbyname('三期款日期').Text, 0);
               D2 := StrToDateDef(fieldbyname('实际三期款日期').Text, 0);
               If D2 > D1 Then Begin
                  D := true;
                  SMEMO := SMEMO + '三期款超时:' + FormatFloat('##', D2 - D1) +
                     '天,';
               End;
               f1 := fieldbyname('四期款').AsFloat;
               f2 := fieldbyname('实际四期款').AsFloat;
               If f1 > f2 Then Begin
                  SMEMO := SMEMO + '四期款欠额:' + FormatFloat('0.##', f1 - f2)
                     +
                     '元,';
                  b := true;
               End;
               D1 := StrToDateDef(fieldbyname('四期款日期').Text, 0);
               D2 := StrToDateDef(fieldbyname('实际四期款日期').Text, 0);
               If D2 > D1 Then Begin
                  D := true;
                  SMEMO := SMEMO + '四期款超时:' + FormatFloat('##', D2 - D1) +
                     '天,';
               End;
            End Else If fieldbyname('付款方式').Text = '按揭' Then Begin
               f1 := fieldbyname('合同首付款').AsFloat;
               f2 := fieldbyname('实际首付款').AsFloat;
               If f1 > f2 Then Begin
                  b := true;
                  SMEMO := SMEMO + '实际按揭首付款欠额:' + FormatFloat('0.##',
                     f1 - f2) + '元,';
               End;
               D1 := StrToDateDef(fieldbyname('合同约定首付款日期').Text, 0);
               D2 := StrToDateDef(fieldbyname('实际首付款日期').Text, 0);
               If D2 > D1 Then Begin
                  D := true;
                  SMEMO := SMEMO + '实际按揭首付款日期超期' +
                     FormatFloat('##', D2 - D1) + '天,';
               End;

            End;
            If b Or D Then Begin
               ADOQuery4.Append;
               ADOQuery4.fieldbyname('公司编号').AsString :=
                  adotemp.fieldbyname('公司编号').Text;
               ADOQuery4.fieldbyname('公司名称').AsString :=
                  ADOQuery1.fieldbyname('公司名称').Text;

               ADOQuery4.fieldbyname('项目编号').AsString :=
                  adotemp.fieldbyname('项目编号').Text;
               ADOQuery4.fieldbyname('项目名称').AsString :=
                  ADOQuery2.fieldbyname('项目名称').Text;

               ADOQuery4.fieldbyname('幢号').AsString :=
                  adotemp.fieldbyname('幢号').Text;
               ADOQuery4.fieldbyname('房号').AsString :=
                  adotemp.fieldbyname('房号').Text;

               If (b And D) Then
                  ADOQuery4.fieldbyname('违约性质').AsString := '日期+金额'
               Else If b Then
                  ADOQuery4.fieldbyname('违约性质').AsString := '金额'
               Else If D Then
                  ADOQuery4.fieldbyname('违约性质').AsString := '日期';

               ADOQuery4.fieldbyname('付款方式').AsString :=
                  adotemp.fieldbyname('付款方式').Text;
               ADOQuery4.fieldbyname('客户编号').AsString :=
                  adotemp.fieldbyname('客户编号').Text;

               ADOQuery4.fieldbyname('客户名称').AsString :=
                  GetManName(adotemp.fieldbyname('公司编号').Text,
                  adotemp.fieldbyname('客户编号').Text);

               ADOQuery4.fieldbyname('违约信息备注').AsString := SMEMO;

               ADOQuery4.fieldbyname('买卖租赁合同号').AsString :=
                  adotemp.fieldbyname('合同号').Text;
               If fieldbyname('付款方式').Text = '分期' Then
                  ADOQuery4.fieldbyname('按揭合同号').AsString := ''
               Else
                  ADOQuery4.fieldbyname('按揭合同号').AsString :=
                     adotemp.fieldbyname('按揭合同号').Text;

               ADOQuery4.fieldbyname('销售类型').AsString := '拆迁还建';
               ADOQuery4.post;
            End;

            SMEMO := '';
            Next;
         End;

      Free;
   End;
End;

Procedure tSearchByInfringeForm.AppendStages; //预售
Var
   adotemp          : TADOQuery;
   i                : integer;
   wstr1            : String;
   D1, D2           : TDate;
   f1, f2           : double;
   b, D             : Boolean;
   SMEMO            : String;
Begin
   SMEMO := '';
   wstr1 := '  公司编号=''' + ADOQuery1.fieldbyname('公司编号').Text +
      ''' AND 项目编号=''' + ADOQuery2.fieldbyname('项目编号').Text + '''';

   If Not (CheckBox1.Checked) Then
      wstr1 := wstr1 + ' and 幢号=''' + ADOQuery3.fieldbyname('幢号').Text +
         '''';
   wstr1 := wstr1 + ' and 是否过期=FALSE';

   ADOQuery4.sql.Text := 'select * from 违约查询表';

⌨️ 快捷键说明

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