end;
strSQL:=strSQL+' Order By ' + strTemp;
// strSQL:=strSQL+' Order By A.PlanCourseOrder, A.AchievementTypeID, A.StudentID';
ADODataSet.Close;
ADODataSet.CommandText := strSQL;
if BtnSearch.Tag =3 then // 如是补考,则设置过滤条件
ADODataSet.Filter := 'Achievement<60';
ADODataSet.Open;
StatusBar.Panels[3].Text := IntToStr(ADODataSet.RecordCount); // 记录数
DataSource.DataSet := ADODataSet;
end;
⑹ 当用户在选择了“学院”、“专业”或“班级”后,ComboBoxStudent (学生)和ComboBoxCourse (课程)列表框中已填充了相应的学生和课程内容,因此用户可以从“学生”列表框中选取某一个学生或从“课程”列表框中选取某一门课程进行查询,所以还需要编制“学生”和“课程”列表框的OnChange事件。因为当“学生”、“课程”或“考试类型”发生变化后,都需要重新进行查询,所以将这3个TComboBox的OnChange事件设置为事件共享,在该OnChange事件中直接调用“查询”按钮的OnClick事件即可,相关代码如下:
procedure TFormSearchAchievement.ComboBoxStudentChange(Sender: TObject);
begin
BtnSearchClick( Nil ); // 调用"查询"按钮的OnClick事件
end;
⑺ “统计报表”按钮的OnClick事件,输出相关报表,相关代码如下:
procedure TFormSearchAchievement.SBtnStatisticsClick(Sender: TObject);
begin
With FormStatisticsReport do begin
// 通过通用查询、排名统计表和补考名单菜单进入时,有细节带
// 而通过打印成绩单和统计分析表菜单进入时,则没有细节带
DetailBand1.Enabled:=(BtnSearch.Tag in [0,3]);
QRGroup1.ForceNewPage:=(BtnSearch.Tag in [0,1,3]); // 设置分页
if BtnSearch.Tag=0 then
QuickRep.ReportTitle:='通用报表'
else
QuickRep.ReportTitle:=SBtnStatistics.Caption;
QRLabelStudentID.Enabled:=DetailBand1.Enabled;
QRLabelStudentName.Enabled:=DetailBand1.Enabled;
QuickRep.Preview;
end;
end;
|