end;
⑶ 因该组中的各门课程成绩都要显示,所以可以通过设置细节带DetailBand1的AfterPrint ()事件,计算各种成绩累加及对该学生本学期课程数进行统计,相关代码如下。
procedure TFormPrintReportCard.DetailBand1AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
var
i : Integer;
begin
with FormSearchAchievement do begin // 总评成绩累加
GroupAverage[0]:=GroupAverage[0]+ADODataSet.FieldValues['Achievement'];
for i:= 1 to 3 do // 平时、期中和期末成绩累加
GroupAverage[i]:=GroupAverage[i]+ADODataSet.FieldValues['Achievement'+IntToStr(i)];
Inc(NumCount); // 该学生本学期课程数加1
end;
end;
⑷ 每组结束后需要输出该学生一学期的汇总信息,所以通过设置组脚带QRBand1的BeforePrint ()事件,计算并显示该学生本学期各成绩的平均值,相关代码如下:
procedure TFormPrintReportCard.QRBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
QRLabelAchievement.Caption:=Format('%.1f', [GroupAverage[0]/NumCount]);
QRLabelAchievement1.Caption:=Format('%.1f', [GroupAverage[1]/NumCount]);
QRLabelAchievement2.Caption:=Format('%.1f', [GroupAverage[2]/NumCount]);
QRLabelAchievement3.Caption:=Format('%.1f', [GroupAverage[3]/NumCount]);
end;
|