📄 udeptset.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 + -