📄 edithoursefm.pas
字号:
Unit EditHourseFM;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, LbButton, StdCtrls, DBCtrls, Mask, ExtCtrls, DBCtrlsEh,
CheckLst, DB, ADODB, Grids, DBGridEh, GridsEh;
Type
TfrmEditHourse = Class(TForm)
LbButton2: TButton;
AALabel1: TLabel;
DBText1: TDBText;
AALabel2: TLabel;
DBText2: TDBText;
AALabel3: TLabel;
DBText3: TDBText;
AALabel4: TLabel;
DBText4: TDBText;
AALabel5: TLabel;
AALabel6: TLabel;
DBEdit1: TDBEdit;
Bevel1: TBevel;
AALabel8: TLabel;
DBEdit2: TDBEdit;
AALabel9: TLabel;
DBComboBox1: TDBComboBox;
AALabel7: TLabel;
AALabel18: TLabel;
DBNumberEditEh4: TDBNumberEditEh;
AALabel10: TLabel;
DBNumberEditEh1: TDBNumberEditEh;
AALabel11: TLabel;
AALabel12: TLabel;
AALabel13: TLabel;
DBNumberEditEh2: TDBNumberEditEh;
AALabel14: TLabel;
AALabel15: TLabel;
DBComboBox2: TDBComboBox;
AALabel16: TLabel;
AALabel17: TLabel;
DBDateTimeEditEh1: TDBDateTimeEditEh;
AALabel19: TLabel;
AALabel20: TLabel;
DBDateTimeEditEh2: TDBDateTimeEditEh;
AALabel21: TLabel;
CheckListBox1: TCheckListBox;
AALabel22: TLabel;
DBEdit3: TDBEdit;
Bevel2: TBevel;
AALabel36: TLabel;
DBGridEH1: TDBGridEh;
DataSource1: TDataSource;
qry1: TADOQuery;
LbButton1: TButton;
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
BADD : Boolean;
{ Public declarations }
End;
Var
frmEditHourse : TfrmEditHourse;
StrTemphourseID : String;
Implementation
Uses MainDM, ViewHouseFM, PUBFunction;
{$R *.dfm}
Procedure TfrmEditHourse.FormClose(Sender: TObject;
Var Action: TCloseAction);
Begin
Action := cafree;
frmEditHourse := nil;
End;
Procedure TfrmEditHourse.LbSpeedButton5Click(Sender: TObject);
Begin
Close;
End;
Procedure TfrmEditHourse.LbButton1Click(Sender: TObject);
Begin
frmViewHouse.ADOQuery3.Cancel;
Close;
End;
Procedure TfrmEditHourse.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 := DMMain.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 := DMMain.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 := DMMain.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;
frmViewHouse.ADOQuery3.fieldbyname('公司编号').AsString :=
DBText1.Caption;
frmViewHouse.ADOQuery3.fieldbyname('项目编号').AsString :=
DBText3.Caption;
frmViewHouse.ADOQuery3.post;
Close;
End;
Procedure TfrmEditHourse.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 TfrmEditHourse.FormCreate(Sender: TObject);
Var
i : integer;
GHYT : String;
SL : TStringlist;
Begin
StrTemphourseID := frmViewHouse.ADOQuery3.fieldbyname('幢号').Text;
GHYT := frmViewHouse.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);
qry1.sql.Text := 'select * from 单元信息表 where ' +
'单元信息表.公司编号=''' + DBText1.Caption +
''' and 单元信息表.项目编号=''' + DBText3.Caption +
''' AND 单元信息表.幢号=''' + DBEdit1.Text + '''';
qry1.open;
End;
Procedure TfrmEditHourse.DBDateTimeEditEh1Exit(Sender: TObject);
Begin
PUBFunction.FixEhDTBug(DBDateTimeEditEh1);
End;
Procedure TfrmEditHourse.DBDateTimeEditEh2Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh2);
End;
End.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -