?? edititemunit.pas
字號:
Unit EditItemUnit;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, LbButton, ExtCtrls, StdCtrls, DBCtrls, AAFont, AACtrls, Mask,
DBCtrlsEh, CheckLst, Grids, DBGridEh, DB, ADODB;
Type
TEditItemForm = Class(TForm)
LbButton1: TLbButton;
LbButton2: TLbButton;
AALabel1: TAALabel;
DBText1: TDBText;
AALabel2: TAALabel;
DBText2: TDBText;
Bevel1: TBevel;
AALabel3: TAALabel;
AALabel4: TAALabel;
AALabel5: TAALabel;
AALabel6: TAALabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
AALabel7: TAALabel;
AALabel8: TAALabel;
DBEdit3: TDBEdit;
AALabel9: TAALabel;
DBComboBox1: TDBComboBox;
AALabel10: TAALabel;
DBNumberEditEh1: TDBNumberEditEh;
AALabel11: TAALabel;
AALabel12: TAALabel;
AALabel13: TAALabel;
AALabel14: TAALabel;
AALabel15: TAALabel;
DBDateTimeEditEh1: TDBDateTimeEditEh;
AALabel16: TAALabel;
DBNumberEditEh3: TDBNumberEditEh;
AALabel17: TAALabel;
AALabel18: TAALabel;
DBNumberEditEh4: TDBNumberEditEh;
AALabel20: TAALabel;
DBNumberEditEh5: TDBNumberEditEh;
AALabel21: TAALabel;
AALabel19: TAALabel;
AALabel22: TAALabel;
DBDateTimeEditEh2: TDBDateTimeEditEh;
AALabel23: TAALabel;
AALabel24: TAALabel;
DBDateTimeEditEh3: TDBDateTimeEditEh;
AALabel25: TAALabel;
AALabel26: TAALabel;
DBDateTimeEditEh4: TDBDateTimeEditEh;
AALabel27: TAALabel;
AALabel28: TAALabel;
DBDateTimeEditEh5: TDBDateTimeEditEh;
AALabel29: TAALabel;
AALabel30: TAALabel;
DBEdit4: TDBEdit;
AALabel31: TAALabel;
DBMemo1: TDBMemo;
AALabel32: TAALabel;
AALabel33: TAALabel;
CheckListBox3: TCheckListBox;
AALabel34: TAALabel;
CheckListBox4: TCheckListBox;
AALabel35: TAALabel;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
AALabel36: TAALabel;
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
EditItemForm : TEditItemForm;
BADD : Boolean;
strTempItemID : String;
Implementation
Uses DM, VIEWItemUnit, PUBFunction;
{$R *.dfm}
Procedure TEditItemForm.LbButton1Click(Sender: TObject);
Begin
VIEWItemForm.ADOQuery2.Cancel;
Close;
End;
Procedure TEditItemForm.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 := DM.DataModule2.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 := DM.DataModule2.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;
///
VIEWItemForm.ADOQuery2.fieldbyname('公司編號').AsString :=
DBText1.Caption;
VIEWItemForm.ADOQuery2.post;
Close;
End;
Procedure TEditItemForm.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 TEditItemForm.DBDateTimeEditEh1Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh1);
End;
Procedure TEditItemForm.DBDateTimeEditEh2Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh2);
End;
Procedure TEditItemForm.DBDateTimeEditEh3Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh3);
End;
Procedure TEditItemForm.DBDateTimeEditEh5Exit(Sender: TObject);
Begin
FixEhDTBug(DBDateTimeEditEh4);
End;
Procedure TEditItemForm.FormClose(Sender: TObject;
Var Action: TCloseAction);
Begin
Action := cafree;
EditItemForm := Nil;
End;
Procedure TEditItemForm.FormCreate(Sender: TObject);
Begin
strTempItemID := VIEWItemForm.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 + -