strSQL:=strSQL+' From Teacher T, Department D';
strSQL:=strSQL+' Where T.DepartmentID = D.DepartmentID';
strKeyField[0] := 'TeacherID';
strKeyField[1] := 'TeacherName';
LabelUnit.Caption := '学院';
DBTextUserUnit.DataField := 'DepartmentName'; // 显示学院名
end
else begin // 学生
strSQL:='Select S.StudentID, StudentName, S.ClassID, ClassName, Sex, Birthday, Phone, Email';
strSQL:=strSQL+' From Student S, Class C';
strSQL:=strSQL+' Where S.ClassID = C.ClassID';
strKeyField[0] := 'StudentID';
strKeyField[1] := 'StudentName';
LabelUnit.Caption := '班级';
DBTextUserUnit.DataField := 'ClassName'; // 显示班级名
end;
// 用户ID,查询教师时为教师ID,而学生时则为学号
DBTextUserID.DataField := strKeyField[0];
DBTextUserName.DataField := strKeyField[1];// 用户名
if Trim(EditSearch.Text)<>'' then
strSQL := strSQL +' And '+ strKeyField[CBoxUserType.ItemIndex]
+ ' Like ''%'+ Trim(EditSearch.Text)+'%''';
ADODataSet_User.CommandText := strSQL;
ADODataSet_User.Open; // 查询
end;
⑷ 设计PageCtrlUser、PageCtrlInfor分页组件的OnChange事件,一方面使左右两个分页组件保持联动,另一方面设置“添加”、“保存”按钮的可用性,相关代码如下:
procedure TFormRightManage.PageCtrlUserChange(Sender: TObject);
begin // 使左右两个分页组件保持联动
PageCtrlInfor.ActivePageIndex:=PageCtrlUser.ActivePageIndex;
// 用户角色信息、角色信息、角色权限信息可以修改
SBtnSave.Enabled:=(PageCtrlInfor.ActivePageIndex in [1, 2, 3]);
// 系统管理员用户不能修改
SBtnSave.Enabled:=SBtnSave.Enabled And
(Not(ADODataSet_User.FieldValues[strKeyField[0]]=SystemAdmin));
CheckListBoxRole.Enabled:=SBtnSave.Enabled;
SBtnAdd.Enabled:=(PageCtrlInfor.ActivePageIndex=2); // "添加"按钮可用性
end;
|