// 树型结构节点关键字数组
SetLength( Fields, 5 );
Fields[0][1] := 'DepartmentID'; // 第一关键字字段
Fields[0][2] := 'DepartmentName'; // 第一关键字值字段
Fields[1][1] := 'SpecialityID'; // 第二关键字字段
Fields[1][2] := 'SpecialityName'; // 第二关键字值字段
Fields[2][1] := 'Jies'; // 第三关键字字段
Fields[2][2] := 'Jies'; // 第三关键字值字段
Fields[3][1] := 'ClassID'; // 第四关键字字段
Fields[3][2] := 'ClassName'; // 第四关键字值字段
Fields[4][1] := 'PlanCourseOrder'; // 第五关键字字段
Fields[4][2] := 'CourseName'; // 第五关键字值字段
// 调用创建目录树的通用快速算法
CreateTreeFast(ADODataSetTree, Fields, TreeView);
ADODataSetCourseTeacher.Open;
ADODataSetTeacher.Open;
// 动态设置任课教师对象的属性
with DBLookupComboBoxCourseTeacher do begin
DataSource:=DataSourceCourseTeacher;
DataField:='TeacherID';
ListSource:=DataSourceTeacher;
KeyField:='TeacherID';
ListField:='TeacherName';
end;
PnlCourseTeacher.Enabled := False;
PnlCmd.Enabled := False;
end;
end;
⑵ 编写TreeView的OnChange事件,在左边选择好任课班级和课程后,再选择安排该课程的任课教师,相关代码如下:
procedure TFormCourseTeacher.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
PnlCourseTeacher.Enabled := False;
PnlCmd.Enabled := False;
StatusBar1.SimpleText:='请展开树,选择课程';
if Node.Level<4 then Exit;
StatusBar1.SimpleText:='请选择:'+Node.Text+'课程的任课教师';
SelectNode := Node; // 保存当前选中的节点
with DMServerDB do begin
LabelClassID.Caption := Node.Parent.Text;
ADODataSetCourseTeacher.Filter:='ClassID='''+TreeList[Node.Parent.AbsoluteIndex]
+''' and PlanCourseOrder='+TreeList[Node.AbsoluteIndex];
ADODataSetCourseTeacher.First;
end;
PnlCourseTeacher.Enabled := True;
PnlCmd.Enabled := True;
end;
⑶ 编写“保存”按钮的OnClick事件,将选中的任课教师存入任课教师表中,相关代码如下:
procedure TFormCourseTeacher.SBtnSaveClick(Sender: TObject);
begin
with DMServerDB.ADODataSetCourseTeacher do begin
Edit; // 进入编辑状态
FieldValues['ClassID'] := TreeList[SelectNode.Parent.AbsoluteIndex];
FieldByName('PlanCourseOrder').AsInteger
:=StrToInt(TreeList[SelectNode.AbsoluteIndex]);
Post; // 存盘
end;
end;
|