end;
if ItemID[3]<>'' then begin // 选择了学期
SQLWhere := SQLWhere + ' And Sp.Term='+IntToStr(ComboBoxTerm.ItemIndex);
end;
if iSearchItem<=3 then begin // 取得上述设置条件下的课程,并填充
strSQL:='SELECT Distinct SP.PlanCourseOrder, Course.CourseName';
strSQL:=strSQL+' FROM SpecialityPlan SP INNER JOIN';
strSQL:=strSQL+' Speciality S ON SP.SpecialityID = S.SpecialityID INNER JOIN';
strSQL:=strSQL+' Department D ON S.DepartmentID = D.DepartmentID INNER JOIN';
strSQL:=strSQL+' Class C ON S.SpecialityID = C.SpecialityID INNER JOIN';
strSQL:=strSQL+' Course ON SP.CourseID = Course.CourseID AND';
strSQL:=strSQL+' C.EntranceYear = SP.Jies';
strSQL:=strSQL+ SQLWhere;
strSQL:=strSQL+' ORDER BY SP.PlanCourseOrder';
ADODataSet.CommandText := strSQL;
ADODataSet.Open;
CreateItems(ADODataSet, ComboBoxCourse.Items,'PlanCourseOrder;CourseName',True);
ComboBoxCourse.ItemIndex := 0;
end;
end;
end;
end;
⑸ 编写“查询”按钮的OnClick事件,按用户选择的参数取得相关学生的成绩信息,同时还要考虑用户是选择哪一个菜单项进入的,不同的菜单选择不同的排序方案,并设置相关的按钮有效,用于输出对应的报表,相关代码如下:
procedure TFormSearchAchievement.BtnSearchClick(Sender: TObject);
Var
SQLWhere : String;
begin
CalculateItemID; // 计算选择项目ID值
SQLWhere := ''; // 动态生成SQL语句的Where子句
if ItemID[0]<>'' then
SQLWhere := ' Where D.DepartmentID='''+ItemID[0]+'''';
if ItemID[1]<>'' then
SQLWhere := SQLWhere + ' And S.SpecialityID='''+ItemID[1]+'''';
|