你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
通用查询及相关报表设计(十三)
 

设置组头QRGroup1BeforePrint ()事件,用于对不同的组给变量设置初始值及计算课程的开设学年,相关代码如下:

procedure TFormStatisticsReport.QRGroup1BeforePrint(Sender: TQRCustomBand;

  var PrintBand: Boolean);

Var

  Year :  Integer;

begin

// 计算该课的开设学年,2005-2006(1)2005-2006(2)

  Year:=FormSearchAchievement.ADODataSet.FieldValues['EntranceYear'];

  Year:=Year+(FormSearchAchievement.ADODataSet.FieldValues['Term']-1) Div 2;

  QRLabelterm.Caption := IntToStr(Year)+'-'+IntToStr(Year+1)

    +'('+IntToStr(((FormSearchAchievement.ADODataSet.FieldValues['Term']+1) Mod 2)+1)+')';

  for Year:= 0 to 3 do GroupAverage[Year] := 0;  // 四个平均成绩清零

  for Year:= 0 to 6 do Scope[Year] := 0; // 六档成绩计数清零

  NumCount := 0;  // 该组总人数清零

end;

因该组中的每个学生都要显示其相关成绩,所以通过设置细节带DetailBand1AfterPrint ()事件,计算各种成绩累加及对各档成绩的人数进行统计,相关代码如下:

procedure TFormStatisticsReport.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

  i:=Round(ADODataSet.FieldValues['Achievement']) Div 10; // 成绩档次(0-10)

  if (i<6) then

   Inc(Scope[0])    // 不及格人数加1

  else

   Inc(Scope[i-5]); // 其它相应档人数加1

 end;

end;

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089