📄 archdataclass.pas
字号:
/////////////////////////////////////////////////
//本工程中的数据类,它是从Rose中分析得出的
//类的实现部分是由我们手动添加完善的用于后面的所有窗体部分
//////////////////////////////////////////////////
unit ArchDataClass;
interface
uses MainForm,ArchMain,AccountMain,DepartmentMain,ArchDataModule,windows, Variants,SysUtils,DB;
type
DepDBManager = class;
DepartmentInfo = class;
SystemDBManager = class;
StuffDBManager = class;
InputStuffInfo = class;
ConditionInfo = class;
AccountDBManager = class;
UserAccount = class;
// 部门数据库的管理类
DepDBManager = class
public
// 添加一个新的部门
procedure AddNewDep(Department : DepartmentInfo);
// 显示现有库中的所有部门信息
procedure ShowDepRecords;
// 选择一个部门,没有具体实现,Delphi的Grid控件实现了这一功能
procedure SelectDepRecord;
// 删除一个部门
procedure DelDepartment;
// 修改一个部门信息
procedure ModifyDepInfo(Department : DepartmentInfo);
// 检查库中是否已经存在当前将要输入的部门
function IsExist(var DepName: String) :integer;
end;
// 用来保存输入部门信息的数据类
DepartmentInfo = class
public
// 部门名称
DepartName : String;
// 部门领导人
DepLeader : String;
public
// 将输入窗体中的数据保存到数据对象中
procedure SetDepartmentInfo;
// 将选定的部门信息加载到输入窗体中
procedure LoadDepInfo;
//清楚部门输入窗体中的内容
procedure ZeroDepInput;
//合法性检查
function ValidCheck : boolean;
end;
// 系统数据库维护类
SystemDBManager = class
public
//恢复数据库
procedure RestoreSysDB;
//备份数据库
procedure BackupSysDB;
end;
//管理成员入库的管理类
StuffDBManager = class
public
//向库中新加一条记录
procedure AddModifyStuffInfo(opid :integer;stuffInfo :InputStuffInfo);
//删除一条记录
procedure DelStuffInfo;
end;
// 保存输入窗体中信息的数据类
InputStuffInfo = class
public
//档案号
ArchiveNo :Integer;
// 名称
Name : String;
// 性别
Gender : string ;
// 出生日期
Birthday : TdateTime;
// 学历
Degree : String;
// 职位
Position : String;
// 签约时间
JobStartDate : TDateTime;
// 合同终止时间
JobEndDate : TDateTime;
//住址
Address : String;
//电话
TelNo : string;
//创建者
Creater : String;
//创建日期
CreateDate :TDateTime;
// 部门
DepNo : Integer;
//备注
Note : AnsiString;
public
// 将输入窗体中的数据保存到数据对象中
procedure SetStuffInfo;
// 将选定的记录加载到输入窗体中
procedure LoadStuffInfo;
//清空输入窗体中的内容
Procedure ZeroStuffInput;
//检查输入数据的合法性
function ValidCheck : integer;
end;
// 保存输入条件的数据类
ConditionInfo = class
public
// 名称
Name : String;
// 性别
Gender : String;
// 学历
Degree : String;
// 签约时间
JobStartDate : TDateTime;
//截止时间
JobEndDate :TDateTime;
// 档案号
ArchiveNo : Integer;
// 部门号
Department : String;
// 年龄
Birthday : TDateTime;
// 建档时间
CreateTime : TDateTime;
public
//输入住处的合法性检查
function ValidCheck : integer;
//将输入框中的信息加载到本类中
procedure SetCondition;
//清空条件输入框中的内容
procedure ZeroContionInput;
end;
// 用来完成数据库操作的管理类
AccountDBManager = class
public
// 添加一条新的帐户记录
procedure AddNewAccount(Account :UserAccount);
// 删除一条现有的帐户记录
procedure DeleteAccount;
// 修改一条现有的帐户记录
procedure ModifyAccount(Account : UserAccount);
// 查询帐户记录
function SearchAccount(AccountInfo: UserAccount): Integer;
//检查是否已存在该帐户
function IsExist(var AccountName : String) : Integer;
end;
// 用来保存输入帐户信息的类
UserAccount = class
public
//帐户名
UserName : String;
//密码
Password : String;
//帐户权利
Right : String;
public
// 将输入窗体中的数据填入保存帐户信息的数据对象中
procedure SetUserAccount;
// 设置登录角色的操作权限
procedure SetRight(const opRight :boolean);
//将指定记录赋给输入窗体
procedure LoadAccountInput;
//清空输入窗体中的内容
procedure ZeroAccountInput;
//核法性检查
function ValidCheck :boolean;
end;
implementation
//添加新部门
procedure DepDBManager.AddNewDep(Department : DepartmentInfo);
begin
MainDataModule.DepTable.Insert();
MainDataModule.DepTable.FieldByName('DepName').AsString := Department.DepartName;
MainDataModule.DepTable.FieldByName('DepLeader').AsString := Department.DepLeader;
MainDataModule.DepTable.FieldByName('DepMemberNo').AsInteger := 1;
end;
//删除指定部门
procedure DepDBManager.DelDepartment;
begin
MainDataModule.DepTable.Delete;
end;
//修改指定部门的信息
procedure DepDBManager.ModifyDepInfo(Department: DepartmentInfo);
begin
MainDataModule.DepTable.Edit();
MainDataModule.DepTable.FieldByName('DepName').AsString := Department.DepartName;
MainDataModule.DepTable.FieldByName('DepLeader').AsString := Department.DepLeader;
end;
procedure DepDBManager.ShowDepRecords;
begin
//Delphi的Grid控件实现了这一功能
end;
Procedure DepDBManager.SelectDepRecord;
begin
//Delphi的Grid控件实现了这一功能
end;
//用输入框中的内容来设类中的DepartName和DepLeader属性
procedure DepartmentInfo.SetDepartmentInfo;
begin
Departname :=DepMainForm.edDepName.Text;
DepLeader :=DepMainForm.edDepLeader.Text;
end;
procedure DepartmentInfo.LoadDepInfo;
begin
DepMainForm.edDepName.Text := trim(MainDataModule.DepTable.FieldByName('DepName').AsString);
DepMainForm.edDepLeader.Text := trim(MainDataModule.DepTable.FieldByName('DepLeader').AsString);
end;
procedure DepartmentInfo.ZeroDepInput;
begin
DepMainForm.edDepName.Text :='';
DepMainForm.edDepLeader.Text :='';
end;
//合法性检查
function DepartmentInfo.ValidCheck : boolean;
begin
if (DepMainForm.edDepName.Text = '') or
(DepMainForm.edDepLeader.Text = '') then
ValidCheck := false
else
ValidCheck := true;
end;
//判断帐户是否已经存在
function DepDBManager.IsExist(var DepName : String) : integer;
var
lookupResult : Variant;
searchContent : Variant;
returnString :String;
begin
searchContent :=DepName;
IsExist :=0;
lookupResult := MainDataModule.DepTable.Lookup('DepName',DepName,'DepName');
returnString :=trim(varToStr(lookupResult));
if Not(VarType(lookupResult) in [varNull]) then
begin
if returnString = DepName then
IsExist :=1
else
IsExist :=2
end;
end;
//恢得数据库
procedure SystemDBManager.RestoreSysDB;
begin
//本例中没有实现该类,而由BRMainForm实现的
end;
//备份数据库
procedure SystemDBManager.BackupSysDB;
begin
//本例中没有实现该类,而由BRMainForm实现的
end;
//保存条件查询信息
procedure ConditionInfo.SetCondition;
begin
ArchiveNo :=StrToInt(StuffMain.edArchNo.Text);
CreateTime :=StrToDateTime(StuffMain.edCompCreateTime.Text);
Birthday :=StrToDateTime(StuffMain.edCompBirthday.Text);
Degree :=StuffMain.edCompDegree.Text;
Department :=StuffMain.edCompDep.Text;
Gender :=StuffMain.cbCompGender.Text;
JobStartDate :=StrToDateTime(StuffMain.edCompJST.Text);
JobEndDate :=StrToDateTime(StuffMain.edCompJET.Text);
Name :=StuffMain.edName.Text;
end;
//清空条件输入框
procedure ConditionInfo.ZeroContionInput;
begin
StuffMain.edArchNo.Text :='';
StuffMain.edCompCreateTime.Text :='';
StuffMain.edCompBirthday.Text :='';
StuffMain.edCompDegree.Text :='';
StuffMain.edCompDep.Text :='';
StuffMain.cbCompGender.Text :='';
StuffMain.edCompJST.Text :='';
StuffMain.edCompJET.Text :='';
StuffMain.edName.Text :='';
end;
//输入条件的合法性检查
function ConditionInfo.ValidCheck :integer;
begin
ValidCheck :=0;
if (StuffMain.edCompBirthday.Text <> ' - - ') then
begin
try
StrToDateTime(StuffMain.edCompBirthday.Text);
except
on Exception do
begin
ValidCheck :=1;
StuffMain.edCompBirthday.SetFocus;
end;
end;
end;
if (StuffMain.edCompJST.Text <>' - - ')then
begin
try
StrToDateTime(StuffMain.edCompJST.Text);
except
on Exception do
begin
ValidCheck :=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -