📄 departmentmain.pas
字号:
//管理部门数据库主窗体
unit DepartmentMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids, DBGrids, ExtCtrls;
type
TDepMainForm = class(TForm)
Splitter1: TSplitter;
GroupBox1: TGroupBox;
DepDBGrid: TDBGrid;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
edDepName: TEdit;
edDepLeader: TEdit;
btNewDep: TBitBtn;
btModifyDep: TBitBtn;
btDelDep: TBitBtn;
btResetDep: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btNewDepClick(Sender: TObject);
procedure btModifyDepClick(Sender: TObject);
procedure btDelDepClick(Sender: TObject);
procedure btResetDepClick(Sender: TObject);
procedure DepDBGridCellClick(Column: TColumn);
procedure FormShow(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
public
procedure SetControlEnable(const nDep, mDep, dDep, rDep: Boolean);
end;
var
DepMainForm: TDepMainForm;
implementation
uses ArchDataModule,ArchDataClass,MainForm;
{$R *.dfm}
procedure TDepMainForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
DepMainForm.Release;
ArchMainForm.depDataMenu.Enabled :=true;
end;
//新建部门数据库
procedure TDepMainForm.btNewDepClick(Sender: TObject);
var
depInput: DepartmentInfo;
DepManager: DepDBManager;
begin
depInput :=DepartmentInfo.Create;
DepManager :=DepDBManager.Create;
DepInput.SetDepartmentInfo;
if depInput.ValidCheck then
begin
if DepManager.IsExist(DepInput.DepartName)<>0 then
Application.MessageBox('该部门名已存在,请重新输入','重复的部门名',MB_OK)
else
if Application.MessageBox('确认要添加该记录吗','确认操作',MB_OKCANCEL)=1 then
DepManager.AddNewDep(DepInput)
end
else
Application.MessageBox('上述信息不能为空,请重新输入','输入错误',MB_OK);
DepInput.ZeroDepInput;
edDepName.SetFocus;
DepInput.Free;
DepManager.Free;
MainDataModule.DepTable.First;
end;
//修改指定部门的信息
procedure TDepMainForm.btModifyDepClick(Sender: TObject);
var
DepInput: DepartmentInfo;
DepManager: DepDBManager;
begin
DepInput :=DepartmentInfo.Create;
DepManager :=DepDBManager.Create;
DepInput.SetDepartmentInfo;
if DepInput.ValidCheck then
begin
if DepManager.IsExist(DepInput.DepartName)=2 then
Application.MessageBox('部门名重复,请重新输入','重复的部门名',MB_OK)
else
if Application.MessageBox('确认修改当前记录吗','确认操作',MB_OKCANCEL)=1 then
DepManager.ModifyDepInfo(DepInput)
end
else
Application.MessageBox('上述信息不能为空,请重新输入','输入错误',MB_OK);
DepInput.ZeroDepInput;
edDepName.SetFocus;
DepInput.Free;
DepManager.Free;
SetControlEnable(True, False, False, True);
MainDataModule.DepTable.First;
end;
//删除指定的部门记录
procedure TDepMainForm.btDelDepClick(Sender: TObject);
var
DepManager: DepDBManager;
DepInput : DepartmentInfo;
begin
DepManager := DepDBManager.Create;
DepInput :=DepartmentInfo.Create;
if Application.MessageBox('确认要删除当前记录吗','确认操作',MB_OKCANCEL)=1 then
DepManager.DelDepartment;
DepInput.ZeroDepInput;
MainDataModule.DepTable.First;
edDepName.SetFocus;
DepManager.Free;
DepInput.Free;
SetControlEnable(true,false,false,true);
end;
//清除部门输入框中的信息
procedure TDepMainForm.btResetDepClick(Sender: TObject);
var
DepInput: DepartmentInfo;
begin
DepInput :=DepartmentInfo.Create;
DepInput.ZeroDepInput;
DepInput.Free;
SetControlEnable(true,false,false,true);
end;
procedure TDepMainForm.SetControlEnable(const nDep, mDep , dDep ,rDep :Boolean);
begin
btNewDep.Enabled :=nDep;
btModifyDep.Enabled :=mDep;
btDelDep.Enabled :=dDep;
btResetDep.Enabled :=rDep;
end;
//将选择记录信息加载到输入框中
procedure TDepMainForm.DepDBGridCellClick(Column: TColumn);
var
DepInput: DepartmentInfo;
begin
SetControlEnable(false,true,true,true);
DepInput :=DepartmentInfo.Create;
if MainDataModule.DepTable.RecordCount<>0 then
begin
btNewDep.Enabled :=false;
btModifyDep.Enabled :=true;
btDelDep.Enabled :=true;
DepInput.LoadDepInfo;
end;
DepInput.Free;
end;
procedure TDepMainForm.FormShow(Sender: TObject);
begin
// MainDataModule.DepTable.Filter :='DepNo>1';
// MainDataModule.DepTable.Filtered :=true;
SetControlEnable(true,false,false,true);
end;
procedure TDepMainForm.FormActivate(Sender: TObject);
var
DepNo :String;
begin
DepNo :=VarToStr(MaindataModule.DepTable.Lookup('DepName','未分配','DepNo'));
MainDataModule.DepTable.Filter :='DepNo>'+DepNo;
MainDataModule.DepTable.Filtered :=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -