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

📄 department.pas

📁 一款比较好的学生信息管理系统DELPHI+ACCE
💻 PAS
字号:
unit department;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, DB, DBTables, Grids, DBGrids, Buttons,
  ExtCtrls, Mask;

type
  Tfrmdepartment = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    dbedepartmentID: TDBEdit;
    dbedepartmentName: TDBEdit;
    dbehead: TDBEdit;
    dbetelephone: TDBEdit;
    GroupBox1: TGroupBox;
    dbndepartment: TDBNavigator;
    btnquit: TBitBtn;
    dbgdepartment: TDBGrid;
    tbldepartment: TTable;
    tblvalid: TTable;
    dsdepartment: TDataSource;
    dbmDesc: TDBMemo;
    procedure btnquitClick(Sender: TObject);
    procedure dbndepartmentClick(Sender: TObject; Button: TNavigateBtn);
    procedure tbldepartmentAfterScroll(DataSet: TDataSet);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure tbldepartmentBeforePost(DataSet: TDataSet);
    procedure tbldepartmentBeforeDelete(DataSet: TDataSet);
  private
    procedure ToggleMode;
    function  Hasclass(var str:string):boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmdepartment: Tfrmdepartment;

implementation

{$R *.dfm}

procedure Tfrmdepartment.btnquitClick(Sender: TObject);
begin
close;
end;
procedure Tfrmdepartment.ToggleMode;
var strmsg:string;
    procedure enableinput(enabled:boolean);
     begin
     dbgdepartment.Enabled:=not enabled;
     dbedepartmentID.Enabled:=enabled;
     dbedepartmentname.Enabled:=enabled;
     dbehead.Enabled:=enabled;
     dbetelephone.Enabled:=enabled;
     dbmDesc.Enabled:=enabled;
     end;
    begin
    case tbldepartment.State of
     dsinsert,dsedit:
      begin
       enableinput(true);
       dbndepartment.VisibleButtons:=[nbpost,nbcancel];
       dbedepartmentId.SetFocus;
       end;
    else
      enableinput(false);
      dbndepartment.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast,
                   nbinsert,nbdelete,nbedit,nbpost,nbcancel,nbrefresh];
      end;
   if (tbldepartment.State=dsedit) and hasclass(strmsg) then
   begin
    showmessage(strmsg);
    dbedepartmentId.Enabled:=false;
    end;
   end;
function Tfrmdepartment.Hasclass(var str :string):boolean;
  begin
   result:=false;
   tblvalid.Active:=false;
   tblvalid.TableName:='class';
   tblvalid.Filter:='departID='''+tbldepartment['departID']+'''';
   tblvalid.Filtered:=true;
   tblvalid.Active:=true;
   if not tblvalid.Eof then
     begin
     str:=format('不能修改院系"%S"的编号下面的班级:'#13,[tbldepartment['departname']]) ;
     repeat
      str:=str+format('%10S-%s'#13,[tblvalid['classID'],tblvalid['classname']]);
       tblvalid.Next;
     until tblvalid.Eof;
     str:=str+'隶属于该院系';
     result:=true;
     end;
     tblvalid.Active:=false;
  end;
procedure Tfrmdepartment.dbndepartmentClick(Sender: TObject;
  Button: TNavigateBtn);
begin
    ToggleMode;
end;

procedure Tfrmdepartment.tbldepartmentAfterScroll(DataSet: TDataSet);
begin
     ToggleMode;
end;

procedure Tfrmdepartment.FormShow(Sender: TObject);
begin
tbldepartment.Active:=true;
end;

procedure Tfrmdepartment.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
tbldepartment.Active:=false;
action:=cafree;
end;


procedure Tfrmdepartment.tbldepartmentBeforePost(DataSet: TDataSet);
 procedure checkfield(fieldname,fieldDesc:string ;dbtext:tcustomedit;notempty:boolean);
   begin
    dbtext.Text:=trim(dbtext.Text);  //除去指定字符串中不可见的字符
    dbtext.Text:=stringreplace(dbtext.Text,'''','',[rfreplaceall]);     //返回替换后的字符串
    dbtext.Text:=stringreplace(dbtext.Text,'','',[rfreplaceall]);
    if notempty and (dbtext.Text='') then
      begin
      showmessagefmt('"%S"不能为空,请从新输入足够的信息',[fieldDesc]);
      dbtext.SetFocus ;
      abort;
      end
     else
      tbldepartment.FieldByName(fieldname).AsString:=dbtext.Text;
      end;
  function  validID :boolean;
   var strmsg1 :string;
    begin
     result:=true;
     tblvalid.Active:=false;
     tblvalid.TableName:='department';
     tblvalid.Filter:='departID='''+tbldepartment['departID']+'''';
     tblvalid.Filtered:=true;
     tblvalid.Active:=true;
     if not tblvalid.Eof then
       begin
       strmsg1:=format('院系编号"%S"已经存在,请从新输入!'#13,[tbldepartment['departID']]);
       strmsg1:=strmsg1+format('院系编号:%S'#13,[tbldepartment['departId']]);
       strmsg1:=strmsg1+format('院系名称:%S'#13,[tbldepartment['departname']]);
       strmsg1:=strmsg1+format('院系领导:%S'#13,[tbldepartment['departhead']]);
       showmessage(strmsg1);
       dbedepartmentID.SetFocus;
       result:=false;
       end;
     tblvalid.Active:=false;
    end;
begin
   checkfield('departID','院系编号',dbedepartmentID,true);
   checkfield('departname','院系名称',dbedepartmentName,true);
   checkfield('departhead','负责人',dbehead,true);
   checkfield('telephone','联系电话',dbetelephone,true);
   checkfield('description','说明',dbmDesc,false);
   if dbedepartmentID.Modified and not  validID then
   abort;
end;

procedure Tfrmdepartment.tbldepartmentBeforeDelete(DataSet: TDataSet);
 var strmsg :string;
begin
  if hasclass(strmsg) then
   begin
   showmessage(strmsg);
   abort;
   end;
   strmsg:=format('确定要删除院系"%S"吗?该院系相关信息如下:'#13,[tbldepartment['departID']]);
   strmsg:=strmsg+format('院系编号:%S'#13,[tbldepartment['departId']]);
   strmsg:=strmsg+format('院系名称:%S'#13,[tbldepartment['departname']]);
   strmsg:=strmsg+format('院系领导:%S'#13,[tbldepartment['departhead']]);
   if messageDlg(strmsg,mtconfirmation,[mbyes,mbno],0)<>mryes then
   abort;

end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -