department.pas

来自「delphi renyuanguanlixinxioxitong」· PAS 代码 · 共 183 行

PAS
183
字号
unit Department;

interface

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

type
  TfrmDepartment = class(TfrmOperateModul)
    TreeView1: TTreeView;
    sbtnRefresh: TSpeedButton;
    sbtnUpperDepartment: TSpeedButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    dbedtDepartmentNo: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    atbDepartment: TADOTable;
    aqryDepartment: TADOQuery;
    dsDeaprtment: TDataSource;
    dsqDepartment: TDataSource;
    atbDepartmentDEPARTMENTNO: TWideStringField;
    atbDepartmentDEPARTMENTNAME: TWideStringField;
    atbDepartmentMANAGER: TWideStringField;
    atbDepartmentADDRESS: TWideStringField;
    atbDepartmentTELEPHONE: TWideStringField;
    atbDepartmentUpperDepartment: TStringField;
    aqryDepartmentDEPARTMENTNO: TWideStringField;
    aqryDepartmentDEPARTMENTNAME: TWideStringField;
    atbDepartmentUPPERDEPARTMENTNO: TWideStringField;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure sbtnUpperDepartmentClick(Sender: TObject);
    procedure sbtnRefreshClick(Sender: TObject);
  private
     { Private declarations }
  protected
     function funNew()    :integer; override;
     function funDelete() :integer; override;
     function funUpdate() :integer; override;
     function funSave()   :integer; override;
     function funQuery()  :integer; override;
     function funExit()   :integer; override;
  public
    { Public declarations }
  end;

var
  frmDepartment: TfrmDepartment;
  function gfunOpenDepartment() :integer;
implementation
uses DataModual,gpubUnit;
{$R *.dfm}
//打开部门维护表单
function gfunOpenDepartment() :integer;
begin
   frmDepartment := TfrmDepartment.Create(nil) ;
   frmDepartment.ShowModal ;
   Result := 0;
   frmDepartment.Free ;
end;


 //窗口关闭时将所有的数据控件断开与数据库的连接
procedure TfrmDepartment.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  if atbDepartment.Active then atbDepartment.Close;
  if aqryDepartment.Active then aqryDepartment.Close;
end;
//档窗体显示时将所有的数据控件打开
procedure TfrmDepartment.FormShow(Sender: TObject);
begin
    inherited;
    //生成树
    if not gfunCreateTree(TreeView1) then close;

    if aqryDepartment.Active then aqryDepartment.Close;
    try
         aqryDepartment.Open ;
    except
         application.MessageBox('打开部门表出错','提示',mb_ok) ;
         close;
    end;

    if atbDepartment.Active then atbDepartment.Close;
    try
        atbDepartment.Open;
    except
        application.MessageBox('打开部门表出错','提示',mb_ok) ;
        close;
    end;
end;
//选择上级部门
procedure TfrmDepartment.sbtnUpperDepartmentClick(Sender: TObject);
var
    i :integer;
    sString,sDepartmentNo :string;
begin
  inherited;
  if not atbDepartment.Active then exit;
  if TreeView1.Items.Count <= 0 then exit;
  i :=TreeView1.Selected.AbsoluteIndex ;
  if i<0 then exit;
  sString :=trim(TreeView1.Items[i].Text) ;
  i:= Pos('--',sString);
  sDepartmentNo := Copy(sString,1,i-1);
  if atbDepartment.State = dsBrowse then
    atbDepartment.Edit;
  atbDepartment.FieldByName('UpperDepartmentNo').AsString := sDepartmentNo;
end;
//虚方法的具体显现过程
function   TfrmDepartment.funNew() :integer;
begin
  Result := 0;
  if not atbDepartment.Active then exit;
  atbDepartment.Last ;   //将指针移到最后一条记录
  atbDepartment.Append  ;
  atbDepartment.FieldByName('UpperDepartmentNo').AsString :='001'; 
  dbedtDepartmentNo.SetFocus ;

end;
function TfrmDepartment.funDelete() :integer;
begin
  Result := 0;
  if not atbDepartment.Active then exit;
  if length(trim(atbDepartment.FieldByName('DepartmentNo').AsString))>0 then
  begin
     if application.MessageBox('是否确信删除','提示',mb_YESNO) = IDYES then
        atbDepartment.Delete
  end
  else
  begin
    application.MessageBox('没有选择要删除的部门','提示',mb_ok) ;
    exit;
  end;
end;
function TfrmDepartment.funUpdate() :integer;
begin
   Result := 0;
end;
function TfrmDepartment.funSave()   :integer;
begin
  Result :=0;
  if not atbDepartment.Active then exit;
  if atbDepartment.State = dsBrowse then exit;
  try
    atbDepartment.Post ;
  except
    application.MessageBox('保存部门出错','提示',mb_ok) ;
    atbDepartment.Cancel ;
    exit;
  end;

end;
function TfrmDepartment.funQuery()  :integer;
begin
   Result := 0;
end;
function TfrmDepartment.funExit()   :integer;
begin
   Result := 0;
   close;
end;

procedure TfrmDepartment.sbtnRefreshClick(Sender: TObject);
begin
  inherited;
  if not gfunCreateTree(TreeView1) then exit;
end;

end.

⌨️ 快捷键说明

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