strSQL:='SELECT C.ClassID, C.ClassName';
strSQL:=strSQL +' FROM Class C INNER JOIN';
strSQL:=strSQL +' Speciality S ON C.SpecialityID = S.SpecialityID INNER JOIN';
strSQL:=strSQL +' Department D ON S.DepartmentID = D.DepartmentID';
ADODataSet.CommandText := strSQL+SQLWhere;
ADODataSet.Open; // 填充班级列表,并选择相关班级
ComboBoxClass.ItemIndex :=
CreateItems(ADODataSet, ComboBoxClass.Items,'ClassID;ClassName',True,True,True);
if UserType=2 then // 登录的是学生
ComboBoxDepartmentChange( ComboBoxClass );
end;
if (iSearchItem>=2) And (ItemID[2]<>'') then begin // 选择了班级
SQLWhere := SQLWhere + ' And C.ClassID='''+ItemID[2]+'''';
if (iSearchItem=2) then begin // 取得该班的入学年份
strSQL:='SELECT EntranceYear FROM Class Where ClassID='''+ItemID[2]+'''';
ADODataSet.CommandText := strSQL;
ADODataSet.Open; // 按入学年份填充学期列表
CreateTermItems(ADODataSet.FieldValues['EntranceYear']);
ADODataSet.Close;
end;
end;
if iSearchItem<=2 then begin // 选择了班级,则填充学生列表
strSQL:='SELECT Stu.StudentID, Stu.StudentName';
strSQL:=strSQL+' FROM Student Stu INNER JOIN';
strSQL:=strSQL+' Class C ON Stu.ClassID = C.ClassID INNER JOIN';
strSQL:=strSQL+' Speciality S ON C.SpecialityID = S.SpecialityID INNER JOIN';
strSQL:=strSQL+' Department D ON S.DepartmentID = D.DepartmentID';
strSQL:=strSQL+ SQLWhere;
strSQL:=strSQL+' ORDER BY Stu.StudentID';
ADODataSet.CommandText := strSQL;
ADODataSet.Open;
CreateItems(ADODataSet, ComboBoxStudent.Items,'StudentID;StudentName',True);
ComboBoxStudent.ItemIndex := 0;
|