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

📄 edithourseunit.pas

📁 短小而实用的房地产销售管理软件
💻 PAS
字号:
Unit EditHourseUnit;

Interface

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

Type
   TEditHourseForm = Class(TForm)
      LbButton2: TLbButton;
      AALabel1: TAALabel;
      DBText1: TDBText;
      AALabel2: TAALabel;
      DBText2: TDBText;
      AALabel3: TAALabel;
      DBText3: TDBText;
      AALabel4: TAALabel;
      DBText4: TDBText;
      AALabel5: TAALabel;
      AALabel6: TAALabel;
      DBEdit1: TDBEdit;
      Bevel1: TBevel;
      AALabel8: TAALabel;
      DBEdit2: TDBEdit;
      AALabel9: TAALabel;
      DBComboBox1: TDBComboBox;
      AALabel7: TAALabel;
      AALabel18: TAALabel;
      DBNumberEditEh4: TDBNumberEditEh;
      AALabel10: TAALabel;
      DBNumberEditEh1: TDBNumberEditEh;
      AALabel11: TAALabel;
      AALabel12: TAALabel;
      AALabel13: TAALabel;
      DBNumberEditEh2: TDBNumberEditEh;
      AALabel14: TAALabel;
      AALabel15: TAALabel;
      DBComboBox2: TDBComboBox;
      AALabel16: TAALabel;
      AALabel17: TAALabel;
      DBDateTimeEditEh1: TDBDateTimeEditEh;
      AALabel19: TAALabel;
      AALabel20: TAALabel;
      DBDateTimeEditEh2: TDBDateTimeEditEh;
      AALabel21: TAALabel;
      CheckListBox1: TCheckListBox;
      AALabel22: TAALabel;
      DBEdit3: TDBEdit;
      Bevel2: TBevel;
      AALabel36: TAALabel;
      DBGridEH1: TDBGridEh;
      DataSource1: TDataSource;
      ADOQuery1: TADOQuery;
      LbButton1: TLbButton;
      Procedure FormClose(Sender: TObject; Var Action: TCloseAction);
      Procedure LbSpeedButton5Click(Sender: TObject);
      Procedure LbButton2Click(Sender: TObject);
      Procedure DBEdit3Change(Sender: TObject);
      Procedure FormCreate(Sender: TObject);
      Procedure DBDateTimeEditEh1Exit(Sender: TObject);
      Procedure DBDateTimeEditEh2Exit(Sender: TObject);
      Procedure LbButton1Click(Sender: TObject);
   Private
    { Private declarations }
   Public
    { Public declarations }
   End;

Var
   EditHourseForm   : TEditHourseForm;
   BADD             : Boolean;
   StrTemphourseID  : String;
Implementation
Uses DM, ViewHouseUnit, PUBFunction;
{$R *.dfm}

Procedure TEditHourseForm.FormClose(Sender: TObject;
   Var Action: TCloseAction);
Begin
   Action := cafree;
   EditHourseForm := Nil;
End;

Procedure TEditHourseForm.LbSpeedButton5Click(Sender: TObject);
Begin
   Close;
End;

Procedure TEditHourseForm.LbButton1Click(Sender: TObject);
Begin
   ViewHouseForm.ADOQuery3.Cancel;
   Close;
End;

Procedure TEditHourseForm.LbButton2Click(Sender: TObject);

   Function IsInputNil: Boolean;
   Begin
      result := true;
      If (Trim(DBEdit1.Text) = '') Then Begin
         Application.MessageBox('记录添加失败!楼房幢号不能为空!请修改幢号!',
            '出错信息', MB_ICONERROR);
         DBEdit1.SetFocus;
         result := false;
      End;
   End;

   Function ExtRec: Boolean;
   Var
      ADOQ          : TADOQuery;
   Begin
      ADOQ := TADOQuery.create(self);
      With ADOQ Do Begin
         connection := DM.DataModule2.ADOConnection1;
         sql.Text := 'SELECT 幢号 FROM 单体信息表' +
            ' WHERE 公司编号=''' + DBText1.Caption +
            ''' AND 项目编号=''' + DBText3.Caption +
            ''' AND 幢号=''' + DBEdit1.Text + '''';
         open;
         result := recordcount > 0;
         Free;
      End;
   End;

   Procedure ModifyFloor;
   Var
      ADOX          : TADOQuery;
   Begin
      ADOX := TADOQuery.create(self);
      ADOX.connection := DM.DataModule2.ADOConnection1;
      ADOX.sql.Text := 'UPDATE 单元信息表 SET 总层数=' +
         DBNumberEditEh1.Text + ' where 公司编号=''' +
         DBText1.Caption + ''' AND 项目编号=''' +
         DBText3.Caption + ''' and 幢号=''' +
         StrTemphourseID + '''';
      ADOX.ExecSQL;
      ADOX.Free;
   End;

   Procedure ModifyRecAboutGD(sTablename: String);
   Var
      ADOX          : TADOQuery;
   Begin
      ADOX := TADOQuery.create(self);
      ADOX.connection := DM.DataModule2.ADOConnection1;
      ADOX.sql.Text := 'UPDATE ' + sTablename + ' SET 幢号=''' +
         DBEdit1.Text + ''' where 公司编号=''' +
         DBText1.Caption + ''' AND 项目编号=''' +
         DBText3.Caption + ''' and 幢号=''' +
         StrTemphourseID + '''';
      ADOX.ExecSQL;
      ADOX.Free;
   End;

Var
   GHYT             : String;
   i                : integer;
Begin
   If Not IsInputNil Then Exit;
   If BADD Then Begin
      If ExtRec Then Begin
         Application.MessageBox('记录添加失败,记录已存在!请修改幢号',
            '出错信息', MB_ICONERROR);
         DBEdit1.SetFocus;
         Exit;
      End;
   End Else Begin
      If DBEdit1.Text <> StrTemphourseID Then Begin
         If ExtRec Then Begin
            Application.MessageBox('记录修改失败,记录已存在!请修改幢编号',
               '出错信息', MB_ICONERROR);
            DBEdit1.Text := '';
            DBEdit1.SetFocus;
            Exit;
         End;
      End;
   End;
   ModifyFloor;                         //修改单元总楼层字段

   //修改其他相关表中编号
   For i := 0 To sTnames.Count - 1 Do
      If (ExtFieldInTable(sTnames[i], '幢号')) Then
         If Not (sTnames[i] = '单体信息表') Then
            ModifyRecAboutGD(sTnames[i]);

   GHYT := '';
   For i := 0 To CheckListBox1.Count - 1 Do Begin
      If CheckListBox1.Checked[i] Then
         GHYT := GHYT + CheckListBox1.Items[i] + '_';
   End;
   GHYT := Copy(GHYT, 0, Length(GHYT) - 1);
   DBEdit3.Text := GHYT;

   ViewHouseForm.ADOQuery3.fieldbyname('公司编号').AsString :=
      DBText1.Caption;
   ViewHouseForm.ADOQuery3.fieldbyname('项目编号').AsString :=
      DBText3.Caption;
   ViewHouseForm.ADOQuery3.post;
   Close;
End;

Procedure TEditHourseForm.DBEdit3Change(Sender: TObject);
Var
   GHYT             : String;
   i, k             : integer;
   SL               : TStringlist;
Begin
   GHYT := DBEdit3.Text;
   For i := 0 To CheckListBox1.Count - 1 Do
      CheckListBox1.Checked[i] := false;
   SL := TStringlist.create;
   SL := Split(GHYT, '_');
   For i := 0 To SL.Count - 1 Do Begin
      k := CheckListBox1.Items.IndexOf(SL[i]);
      If k >= 0 Then CheckListBox1.Checked[k] := true;
   End;
   SL.Free;

End;

Procedure TEditHourseForm.FormCreate(Sender: TObject);
Var
   i                : integer;
   GHYT             : String;
   SL               : TStringlist;
Begin
   StrTemphourseID := ViewHouseForm.ADOQuery3.fieldbyname('幢号').Text;
   GHYT := ViewHouseForm.ADOQuery2.fieldbyname('规划用途').Text;
   SL := TStringlist.create;
   SL := Split(GHYT, '_');
   CheckListBox1.Clear;
   If SL.Count > 0 Then
      For i := 0 To SL.Count - 1 Do Begin
         CheckListBox1.Items.Add(SL[i]); //增加
      End;
   SL.Free;
   DBEdit3Change(self);

   ADOQuery1.sql.Text := 'select * from 单元信息表 where ' +
      '单元信息表.公司编号=''' + DBText1.Caption +
      ''' and 单元信息表.项目编号=''' + DBText3.Caption +
      ''' AND 单元信息表.幢号=''' + DBEdit1.Text + '''';

   ADOQuery1.open;

End;

Procedure TEditHourseForm.DBDateTimeEditEh1Exit(Sender: TObject);
Begin
   PUBFunction.FixEhDTBug(DBDateTimeEditEh1);
End;

Procedure TEditHourseForm.DBDateTimeEditEh2Exit(Sender: TObject);
Begin
   FixEhDTBug(DBDateTimeEditEh2);
End;

End.

⌨️ 快捷键说明

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