📄 bas_dept_d.pas
字号:
unit Bas_Dept_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, ExtEdit,variants;
Type
TFrm_Bas_Dept_D = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edt_DeptCode: TEdit;
Edt_DeptName: TEdit;
ExtEdt_Dep_DeptCode: TExtEdit;
Edt_DeptRemArk: TEdit;
lbl_Dept_DeptName: TLabel;
procedure FormCreate(Sender: TObject);
procedure Edt_DeptCodeExit(Sender: TObject);
procedure btn_okClick(Sender: TObject);
private
Function CheckDep_DeptCode(P1,P2:String):Integer;
{ Private declarations }
public
procedure InitControls; Override;
procedure SaveData; Override;
{ Public declarations }
end;
var
Frm_Bas_Dept_D: TFrm_Bas_Dept_D;
implementation
uses Sys_Global;
{$R *.DFM}
Function TFrm_Bas_Dept_D.CheckDep_DeptCode(P1,P2:String):Integer;
var
SqlText:string;
begin
SqlText:='Select * From Dept Where DeptCode=:P1 ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.Parameters.ParamByName('P1').Value:=P1;
AdoQry_Tmp.Open;
If AdoQry_Tmp.Eof Then
Result:=1;
If (Not AdoQry_Tmp.Eof) And
(Trim(AdoQry_Tmp.fieldbyname('Dep_DeptCode').AsString)<>Trim(P2)) Then
Result:=2;
If (Not AdoQry_Tmp.Eof) And
(Trim(AdoQry_Tmp.fieldbyname('Dep_DeptCode').AsString)=Trim(P2)) Then
Result:=3;
end;
procedure TFrm_Bas_Dept_D.FormCreate(Sender: TObject);
begin
inherited;
lbl_Dept_DeptName.Caption:='';
SetFocus_Control:=ExtEdt_Dep_DeptCode;
end;
procedure TFrm_Bas_Dept_D.Edt_DeptCodeExit(Sender: TObject);
begin
inherited;
if ActiveControl.Name='btn_Cancel' then
exit;
if (not BlankInStrCheck(edt_DeptCode.Text,'部门代码')) or
(not BlankCheck(edt_DeptCode.text,'部门代码')) then
begin
TWinControl(Sender).SetFocus;
abort;
end;
if (Edt_DeptCode.text=ExtEdt_Dep_DeptCode.text) then
begin
DispInfo(' 部门代码不能与上级部门代码相同! ',1);
TWinControl(Sender).SetFocus;
abort;
end;
IF CheckDep_DeptCode(ExtEdt_Dep_DeptCode.Text,Edt_DeptCode.Text)=1 Then
Exit;
If CheckDep_DeptCode(ExtEdt_Dep_DeptCode.Text,Edt_DeptCode.Text)=3 Then
begin
DispInfo('你输入的部门代码在它的上级部门代码中已经存在,请重新输入!',1);
TWinControl(Sender).SetFocus;
Abort;
end;
IF CheckDep_DeptCode(ExtEdt_Dep_DeptCode.Text,Edt_DeptCode.Text)=2 Then
While AdoQry_Tmp.RecordCount>0 Do
begin
If CheckDep_DeptCode(AdoQry_Tmp.fieldbyname('Dep_DeptCode').AsString,Edt_DeptCode.Text)=3 Then
begin
DispInfo('你输入的部门代码在它的上级部门代码中已经存在,请重新输入!',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
procedure TFrm_Bas_Dept_D.InitControls;
begin
inherited;
with AdoQry_Maintain do
begin
ExtEdt_Dep_DeptCode.Text:=fieldbyname('dep_DeptCode').AsString;
Lbl_Dept_DeptName.Caption:=fieldbyname('pDeptName').AsString;
Edt_DeptCode.text:=fieldbyname('DeptCode').AsString;
Edt_DeptName.Text:=fieldbyname('DeptName').AsString;
edt_DeptremArk.text:=fieldbyname('DeptremArk').asstring;
end;
end;
procedure TFrm_Bas_Dept_D.SaveData;
begin
inherited;
with AdoQry_Tmp do
begin
Close;
SQL.clear;
if(Add)then
begin
SQL.Add('Insert Dept (DeptCode,DeptName,dep_DeptCode,DeptremArk) '+
' Values '+
'(:DeptCode,:DeptName,:dep_DeptCode,:remArk)');
end
else
begin
SQL.Add('Update Dept set '+
' DeptCode=:DeptCode,'+
' DeptName=:DeptName,'+
' dep_DeptCode=:dep_DeptCode,'+
' DeptremArk=:remArk '+
' where DeptCode=:oldCode');
Parameters.ParambyName('oldCode').Value:=AdoQry_Maintain.fieldbyname('DeptCode').asstring;
end;
Parameters.ParambyName('DeptCode').Value:=Trim(edt_DeptCode.text);
Parameters.ParambyName('DeptName').Value:=Trim(edt_DeptName.text);
if Trim(Extedt_Dep_DeptCode.text)='' then
Parameters.ParambyName('dep_DeptCode').Value:=null
else
Parameters.ParambyName('dep_DeptCode').Value:=Trim(Extedt_Dep_DeptCode.text);
Parameters.ParambyName('remArk').Value:=Trim(edt_DeptremArk.text);
execsql;
end;
with AdoQry_Maintain do
begin
if (Add) Then
Append
Else
Edit;
fieldbyname('dep_DeptCode').AsString:=Trim(Extedt_Dep_DeptCode.text);
fieldbyname('pDeptName').AsString:=Trim(Lbl_Dept_DeptName.Caption);
fieldbyname('DeptCode').AsString:=Trim(edt_DeptCode.text);
fieldbyname('DeptName').AsString:=Trim(edt_DeptName.text);
fieldbyname('DeptremArk').AsString:=Trim(edt_DeptremArk.text);
Post;
end;
end;
procedure TFrm_Bas_Dept_D.btn_okClick(Sender: TObject);
begin
Try
SaveData;
Btn_Ok.Enabled:=False;
DispInfo('数据已正确保存,你还可以继续操作!',3);
ExtEdt_Dep_DeptCode.SelectAll;
ExtEdt_Dep_DeptCode.SetFocus;
Except
DispInfo('保存数据时出错,可能是数据关连或网络故障!',1);
Edt_DeptCode.SelectAll;
Edt_DeptCode.SetFocus;
Abort;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -