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

📄 udeptset.pas

📁 说明: 比较简单的人事档案管理程序,包含了人事档案的大部分功能,做人事档案的兄弟可以看看. 本程序类型:delphi7 + Access2000 桌面数据库 初始用户名/密码:admin
💻 PAS
字号:
unit UDeptSet;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm_DeptSet = class(TForm)
    GroupBox1: TGroupBox;
    FirstDeptList: TListBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    addFirst: TBitBtn;
    EditFirst: TBitBtn;
    delectFirst: TBitBtn;
    addsecond: TBitBtn;
    BitBtn2: TBitBtn;
    deleteSecond: TBitBtn;
    SecondDeptList: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure FirstDeptListClick(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure addFirstClick(Sender: TObject);
    procedure addsecondClick(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure EditFirstClick(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure delectFirstClick(Sender: TObject);
    procedure deleteSecondClick(Sender: TObject);
  private
    { Private declarations }
    Firstdeptcount: integer; //一级部门数量
    SelectFirstDeptID: integer; //选择的一级部门的编号
    SelectSecondDeptID: integer; //选择的二级部门的编号

    procedure LoadFirstDeptList; //载入一级部门列表
    procedure LoadSecondDeptList; //载入二级部门列表
    //增加部门
    procedure addDept(var upid: integer; Depttype: boolean; DeptName: string);
    //编辑选中部门
    procedure editDept(var deptname1, deptname2: string);
    //删除选中部门
    procedure deleteDept(var deptname: string; deptType: boolean);
  public
    { Public declarations }
  end;

var
  Form_DeptSet: TForm_DeptSet;

implementation
uses Umain, Ueditform;

{$R *.dfm}

procedure TForm_DeptSet.addDept(var upid: integer; Depttype: boolean; DeptName: string);
begin
  with form_main.TabDept do
  begin
    close;
    open;
    Insert;
//    FieldValues['dept_id'] := id;
    FieldValues['dept_upid'] := upid;
    FieldValues['dept_type'] := Depttype;
    FieldValues['dept_name'] := deptName;
    post;
  end; // with

end;

procedure TForm_DeptSet.editDept(var deptname1, deptname2: string);
begin
  with form_main.TabDept do
  begin
    open;
    first;
    while not eof do
    begin
      if fieldByName('dept_name').AsString = deptname1 then
      begin
        update;
        edit;
        FieldValues['dept_name'] := deptname2;
        post;
        close;
      end
      else
        next;
    end;
    close;
  end;
end;

procedure TForm_DeptSet.deleteDept(var deptname: string; deptType: boolean);
var deptID: integer;
begin
//删除一级部门
  with form_main.ADOQ1 do
  begin
    SQL.Clear;
    SQL.Add('DELETE FROM DEPT');
    SQL.Add('WHERE dept_name=''' + deptname + '''');
    ExecSQL;
  end; // with
  //是否有二级部门,如有则删除二级部门
  if deptType then
  begin
    with Form_main.TabDept do
    begin
      open;
      first;
      while not eof do
      begin
        if fieldByName('dept_name').AsString = deptname then
          deptID := FieldByName('dept_id').AsInteger;
        next;
      end;
      close;
    end;
    with form_main.ADOQ1 do
    begin
      SQL.Clear;
      SQL.Add('DELETE FROM DEPT');
      SQL.Add('WHERE dept_upid=' + inttostr(deptID));
      ExecSQL;
    end;
  end;
end;

procedure TForm_DeptSet.LoadFirstDeptList;
begin
  FirstDeptList.Clear;
  Firstdeptcount := 0;
  with form_main.TabDept do
  begin
    open;
    first;
    while not eof do
    begin
      if fieldByName('dept_type').AsBoolean then
      begin
        firstDeptList.Items.Add(fieldByName('dept_name').AsString);
        Firstdeptcount := Firstdeptcount + 1;
        next;
      end
      else
        next;
    end; // while
  end; // with
end;

procedure TForm_DeptSet.LoadSecondDeptList;
var deptupID: integer;
  updeptname: string;
begin
  SecondDeptList.Clear;
  SelectFirstDeptID := FirstDeptList.ItemIndex + 1;
  updeptName := FirstDeptList.Items[SelectFirstDeptID - 1];
//  edit1.Text := updeptName;
  with form_main.TabDept2 do
  begin
    open;
    first;
    while not eof do
    begin
      if (fieldByName('dept_name').AsString = updeptName) then
        deptupID := fieldByName('dept_id').AsInteger;
      next;
    end; // while
    close;
  end; // with
//  edit1.Text := edit1.Text + '   ' + inttostr(deptupID);
  with form_main.TabDept do
  begin
    open;
    first;
    while not eof do
    begin
      if (not fieldByName('dept_type').AsBoolean) and (deptupID = fieldByName('dept_upid').AsInteger) then
      begin
        SecondDeptList.Items.Add(fieldByName('dept_name').AsString);
        next;
      end
      else
        next;
    end;
  end;
end;

procedure TForm_DeptSet.FormCreate(Sender: TObject);
begin
  SelectFirstDeptID := 0;
  SelectSecondDeptID := 0;
  LoadFirstDeptList;
end;

procedure TForm_DeptSet.FirstDeptListClick(Sender: TObject);
begin
  SelectFirstDeptID := FirstDeptList.ItemIndex + 1;
  loadSecondDeptList;
end;

procedure TForm_DeptSet.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
    addFirstClick(Sender);
end;

procedure TForm_DeptSet.addFirstClick(Sender: TObject);
var deptUpID: Integer;
  depttype: boolean;
  deptname: string;
begin
  if (trim(edit1.Text) = '') or (Length(trim(edit1.Text)) > 50) then
  begin
    ShowMessage('请输入正确的部门名称(不能超过25个字)');
  end
  else
  begin
    deptUpID := 0;
    deptname := trim(edit1.Text);
    depttype := true;
    Adddept(deptUpID, depttype, deptname);
    FirstDeptList.Items.Add(deptname);
    edit1.Clear;
    edit1.SetFocus;
  end;

end;

procedure TForm_DeptSet.addsecondClick(Sender: TObject);
var
  deptupID: integer;
  deptName: string;
  updeptName: string;
  deptType: Boolean;
begin
  try
    if (SelectFirstDeptID = 0) then
      showmessage('请选择要添加到的一级部门!')
    else
    begin
      if (trim(edit2.Text) = '') or (Length(trim(edit1.Text)) > 50) then
      begin
        ShowMessage('请输入正确的部门名称(不能超过25个字)');
      end
      else
      begin
        updeptName := FirstDeptList.Items[SelectFirstDeptID - 1];
        deptType := false;
        deptName := trim(edit2.Text);
        with form_main.TabDept do
        begin
          open;
          first;
          while not eof do
          begin
            if (fieldByName('dept_name').AsString = updeptName) then
              deptupID := fieldByName('dept_id').AsInteger;
            next;
          end; // while
          close;
        end; // with
        Adddept(deptupID, deptType, deptName);
        SecondDeptList.Items.Add(deptname);
        edit2.Clear;
        edit2.SetFocus;
      end;
    end;
  except
    showmessage('您的操作有误,请选择要添加到的一级部门');
  end;
end;

procedure TForm_DeptSet.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
    addsecondClick(Sender);
end;


procedure TForm_DeptSet.EditFirstClick(Sender: TObject);
var deptname1, deptname2: string;
begin
  try
    selectFirstDeptID := FirstDeptList.ItemIndex + 1;
    if (SelectFirstDeptID = 0) then
    begin
      showmessage('请先选择要修改的部门!');
    end
    else
    begin
      deptname1 := FirstDeptList.Items[SelectFirstDeptID - 1];
      Form_edit := TForm_edit.Create(self);
      Form_edit.Edit1.Text := deptname1;
      Form_edit.ShowModal;
      deptname2 := Form_edit.Edit1.Text;
      editDept(deptname1, deptname2);
      Form_Edit.Free;
      loadFirstDeptList;
    end;
  except
    showmessage('您的操作有误,请选择您要修改的部门');
  end;
end;

procedure TForm_DeptSet.BitBtn2Click(Sender: TObject);
var deptname1, deptname2: string;
begin
  try
    selectSecondDeptID := SecondDeptList.ItemIndex + 1;
    if (SelectSecondDeptID = 0) then
      Showmessage('请先选择要修改的部门!')
    else
    begin
      deptname1 := SecondDeptList.Items[selectSecondDeptID - 1];
      Form_edit := TForm_edit.Create(self);
      Form_edit.Edit1.Text := deptname1;
      Form_edit.ShowModal;
      deptname2 := Form_edit.Edit1.Text;
      editDept(deptname1, deptname2);
      Form_Edit.Free;
      loadSecondDeptList;
    end;
  except
    showmessage('您的操作有误,请选择您要修改的部门');
  end;
end;

procedure TForm_DeptSet.delectFirstClick(Sender: TObject);
var deptname: string;
  deptType: boolean;
begin
  try
    selectFirstDeptID := FirstDeptList.ItemIndex + 1;
    if (SelectFirstDeptID = 0) then
    begin
      showmessage('请先选择要删除的部门!');
    end
    else
    begin
      if (MessageDlg('确实要删除当前部门以及部门中所有记录吗?', mtConfirmation,
        [mbYes, mbNo], 0)) = mrYes then
      begin
        deptname := FirstDeptList.Items[selectFirstDeptID - 1];
        deptType := true;
        deleteDept(deptname, deptType);
        FirstDeptList.Items.Delete(selectFirstDeptID - 1);
        LoadSecondDeptList;
      end;
    end;
  except
    showmessage('您的操作有误,请选择您要删除的部门');
  end;
end;

procedure TForm_DeptSet.deleteSecondClick(Sender: TObject);
var deptname: string;
  deptType: boolean;
begin
  try
    selectSecondDeptID := SecondDeptList.ItemIndex + 1;
    if (SelectSecondDeptID = 0) then
    begin
      showmessage('请先选择要删除的部门!');
    end
    else
    begin
      if (MessageDlg('确实要删除当前部门以及部门中所有记录吗?', mtConfirmation,
        [mbYes, mbNo], 0)) = mrYes then
      begin
        deptname := SecondDeptList.Items[selectSecondDeptID - 1];
        deptType := false;
        deleteDept(deptname, deptType);
        SecondDeptList.Items.Delete(selectSecondDeptID - 1);
      end;
    end;
  except
    showmessage('您的操作有误,请选择您要删除的部门');
  end;
end;

end.

⌨️ 快捷键说明

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