⑵ 编写FormTeacher的OnShow事件,完成界面元素的初始化工作,相关代码如下:
procedure TFormTeacher.FormShow(Sender: TObject);
begin
// 只有具有系统管理员角色的用户才能进行添加、删除等工作
SBtnAdd.Enabled := IsAdministroy;
SBtnDelete.Enabled := IsAdministroy;
DBEditTeacherID.Enabled := IsAdministroy;
DBEditTeacherName.Enabled := IsAdministroy;
DBLookupComboBox.Enabled := IsAdministroy;
EditSearch.Text := '';
DBEditPassWord.PasswordChar := '*';
EditPassWord.PasswordChar := '*';
with DMServerDB do begin
// 通过DepartmentID字段实现与学院信息表的主细表联接
ADODataSetDepartment.Open; // 用于定位学院字段
DBLookupComboBox.ListSource := DataSourceDepartment;
DBLookupComboBox.KeyField := 'DepartmentID';
DBLookupComboBox.ListField := 'DepartmentName';
ADODataSetTeacher.AfterScroll := ADODataSetTeacherAfterScroll; // 设置ADODataSetTeacher的AfterScroll事件
ADODataSetTeacher.BeforePost := ADODataSetTeacherBeforePost;
end;
SBtnSearchClick( Nil ); // 进入查询
end;
⑶ 设置ADODataSetTeacher对象的AfterScroll事件,完成生日、密码等数据的显示,并根据不同用户设置不同使用权限,相关代码如下:
procedure TFormTeacher.ADODataSetTeacherAfterScroll(DataSet: TDataSet);
begin
if DBEditTeacherID.Text ='' then Exit;
// 将生日、密码分别送入指定对象
DateTimePickerBirthday.Date:=DataSet.FieldByName('Birthday').AsDateTime;
EditPassWord.Text := DataSet.FieldByName('PassWord').AsString;
if IsAdministroy then
SBtnSave.Enabled := IsAdministroy
else if UserType=1 then // 自己可以修改
SBtnSave.Enabled := (DataSet.FieldByName('TeacherID').AsString=UserID)
else // 其他教师只能查看
SBtnSave.Enabled := False;
PanelInput.Enabled := SBtnSave.Enabled;
SBtnAdd.Tag := 0; // 恢复浏览状态
end;
⑷ 设置ADODataSetTeacher对象的BeforePost事件,将生日数据存盘,相关代码如下:
procedure TFormTeacher.ADODataSetTeacherBeforePost(DataSet: TDataSet);
begin
DataSet.FieldByName('Birthday').AsDateTime:=DateTimePickerBirthday.Date;
end;
|