树型结构的创建由通用树型结构的快速算法CreateTreeFast过程完成,详细代码请参考CreateTreeFast过程。
从左边树型结构(TreeView)中选择要安排任课的班级和课程,在右边的任课教师(DBLookupComboBoxCourseTeacher)列表框中选择相关的任课教师。任课教师列表框采用主细表联接方法将教师任课表与教师信息表通过TeacherID字段进行联接,从而可以方便地选取教师。
2.2 代码设计
⑴ 编写FormCourseTeacher的OnShow事件,通过SQL语句完成树型结构的创建和任课教师列表框所需要的联接等界面元素的初始化工作,相关代码如下:
procedure TFormCourseTeacher.FormShow(Sender: TObject);
begin
TreeList := TStringList.Create; // 存放树型结构中间数据
// 动态生成树型结构
with DMServerDB do begin
ADODataSetTree.CommandType := cmdText;
ADODataSetTree.Connection := ADOConnection;
strSQL:='SELECT D.DepartmentID, S.SpecialityID, SP.Jies, Class.ClassID, SP.PlanCourseOrder';
strSQL:=strSQL+', Class.ClassName, D.DepartmentName, S.SpecialityName, Course.CourseName';
strSQL:=strSQL+' FROM Class INNER JOIN';
strSQL:=strSQL+' Speciality S ON Class.SpecialityID = S.SpecialityID INNER JOIN';
strSQL:=strSQL+' Department D ON S.DepartmentID = D.DepartmentID INNER JOIN';
strSQL:=strSQL+' SpecialityPlan SP ON S.SpecialityID = SP.SpecialityID INNER JOIN';
strSQL:=strSQL+' Course ON SP.CourseID = Course.CourseID';
strSQL:=strSQL+' Where SP.Jies = Class.EntranceYear';
strSQL:=strSQL+' Order By D.DepartmentID, S.SpecialityID, SP.Jies, Class.ClassID, SP.PlanCourseOrder';
ADODataSetTree.Close;
ADODataSetTree.CommandText := strSQL;
ADODataSetTree.Open;
|