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

📄 bas_dept_d.pas

📁 一个MRPII系统源代码版本
💻 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 + -