📄 edititemfm.pas.~3~
字号:
Unit EditItemFM;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, DBCtrls, Mask,
DBCtrlsEh, CheckLst, Grids, DBGridEh, DB, ADODB, GridsEh;
Type
TfrmEditItem = Class(TForm)
LbButton1: TButton;
LbButton2: TButton;
AALabel1: TLabel;
DBText1: TDBText;
AALabel2: TLabel;
DBText2: TDBText;
Bevel1: TBevel;
AALabel3: TLabel;
AALabel4: TLabel;
AALabel5: TLabel;
AALabel6: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
AALabel7: TLabel;
AALabel8: TLabel;
DBEdit3: TDBEdit;
AALabel9: TLabel;
DBComboBox1: TDBComboBox;
AALabel10: TLabel;
DBNumberEditEh1: TDBNumberEditEh;
AALabel11: TLabel;
AALabel12: TLabel;
AALabel13: TLabel;
AALabel14: TLabel;
AALabel15: TLabel;
DBDateTimeEditEh1: TDBDateTimeEditEh;
AALabel16: TLabel;
DBNumberEditEh3: TDBNumberEditEh;
AALabel17: TLabel;
AALabel18: TLabel;
DBNumberEditEh4: TDBNumberEditEh;
AALabel20: TLabel;
DBNumberEditEh5: TDBNumberEditEh;
AALabel21: TLabel;
AALabel19: TLabel;
AALabel22: TLabel;
DBDateTimeEditEh2: TDBDateTimeEditEh;
AALabel23: TLabel;
AALabel24: TLabel;
DBDateTimeEditEh3: TDBDateTimeEditEh;
AALabel25: TLabel;
AALabel26: TLabel;
DBDateTimeEditEh4: TDBDateTimeEditEh;
AALabel27: TLabel;
AALabel28: TLabel;
DBDateTimeEditEh5: TDBDateTimeEditEh;
AALabel29: TLabel;
AALabel30: TLabel;
DBEdit4: TDBEdit;
AALabel31: TLabel;
DBMemo1: TDBMemo;
AALabel32: TLabel;
AALabel33: TLabel;
CheckListBox3: TCheckListBox;
AALabel34: TLabel;
CheckListBox4: TCheckListBox;
AALabel35: TLabel;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
AALabel36: TLabel;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBGridEH1: TDBGridEh;
Bevel2: TBevel;
Procedure LbButton1Click(Sender: TObject);
Procedure LbButton2Click(Sender: TObject);
Procedure DBEdit5Change(Sender: TObject);
Procedure DBDateTimeEditEh1Exit(Sender: TObject);
Procedure DBDateTimeEditEh2Exit(Sender: TObject);
Procedure DBDateTimeEditEh3Exit(Sender: TObject);
Procedure DBDateTimeEditEh5Exit(Sender: TObject);
Procedure FormClose(Sender: TObject; Var Action: TCloseAction);
Procedure FormCreate(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
End;
Var
frmEditItem : TfrmEditItem;
BADD : Boolean;
strTempItemID : String;
Implementation
Uses MainDM, VIEWItemFM, PUBFunction;
{$R *.dfm}
Procedure TfrmEditItem.LbButton1Click(Sender: TObject);
Begin
frmVIEWItem.ADOQuery2.Cancel;
Close;
End;
Procedure TfrmEditItem.LbButton2Click(Sender: TObject);
Function IsInputNil: Boolean;
Begin
result := true;
If (Trim(DBEdit1.Text) = '') Or (Trim(DBEdit2.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 项目编号=''' + DBEdit1.Text + '''';
open;
result := recordcount > 0;
Free;
End;
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 项目编号=''' + strTempItemID + '''';
ADOX.ExecSQL;
ADOX.Free;
End;
Var
GHYT, XMLB : 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 <> strTempItemID Then Begin
If ExtRec Then Begin
Application.MessageBox('记录修改失败,记录已存在!请修改项目编号',
'出错信息', MB_ICONERROR);
DBEdit1.Text := '';
DBEdit1.SetFocus;
Exit;
End;
End;
End;
//修改其他相关表中编号
For i := 0 To sTnames.Count - 1 Do
If (ExtFieldInTable(sTnames[i], '项目编号')) Then
If Not (sTnames[i] = '项目信息表') Then
ModifyRecAboutGD(sTnames[i]);
GHYT := '';
XMLB := '';
For i := 0 To CheckListBox3.Count - 1 Do Begin
If CheckListBox3.Checked[i] Then
GHYT := GHYT + CheckListBox3.Items[i] + '_';
End;
GHYT := Copy(GHYT, 0, Length(GHYT) - 1);
For i := 0 To CheckListBox4.Count - 1 Do Begin
If CheckListBox4.Checked[i] Then
XMLB := XMLB + CheckListBox4.Items[i] + '_';
End;
XMLB := Copy(XMLB, 0, Length(XMLB) - 1);
DBEdit5.Text := GHYT;
DBEdit6.Text := XMLB;
///
frmVIEWItem.ADOQuery2.fieldbyname('公司编号').AsString :=
DBText1.Caption;
frmVIEWItem.ADOQuery2.post;
Close;
End;
Procedure TfrmEditItem.DBEdit5Change(Sender: TObject);
Var
GHYT, XMLB : String;
i, k : integer;
SL : TStringlist;
Begin
GHYT := DBEdit5.Text;
XMLB := DBEdit6.Text;
For i := 0 To CheckListBox3.Count - 1 Do
CheckListBox3.Checked[i] := false;
For i := 0 To CheckListBox4.Count - 1 Do
CheckListBox4.Checked[i] := false;
SL := TStringlist.create;
SL := Split(GHYT, '_');
For i := 0 To SL.Count - 1 Do Begin
k := CheckListBox3.Items.IndexOf(SL[i]);
If k >= 0 Then CheckListBox3.Checked[k] := true;
End;
SL.Clear;
SL := Split(XMLB, '_');
For i := 0 To SL.Count - 1 Do Begin
k := CheckListBox4.Items.IndexOf(SL[i]);
If k >= 0 Then CheckListBox4.Checked[k] := true;
End;
SL.Free;
End;
Procedure TfrmEditItem.DBDateTimeEditEh1Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh1);
End;
Procedure TfrmEditItem.DBDateTimeEditEh2Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh2);
End;
Procedure TfrmEditItem.DBDateTimeEditEh3Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh3);
End;
Procedure TfrmEditItem.DBDateTimeEditEh5Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh4);
End;
Procedure TfrmEditItem.FormClose(Sender: TObject;
Var Action: TCloseAction);
Begin
Action := cafree;
frmEditItem := Nil;
End;
Procedure TfrmEditItem.FormCreate(Sender: TObject);
Begin
strTempItemID := frmVIEWItem.ADOQuery2.fieldbyname('项目编号').Text;
ADOQuery1.sql.Text :=
'select 项目信息表.项目名称,单体信息表.* from 单体信息表,项目信息表 where ' +
'项目信息表.项目编号=单体信息表.项目编号 and ' +
'项目信息表.公司编号=单体信息表.公司编号 and ' +
'单体信息表.公司编号=''' + DBText1.Caption + ''' and ' +
'单体信息表.项目编号=''' + DBEdit1.Text + '''';
ADOQuery1.open;
End;
End.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -