你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
数据输入界面设计(十九)
 

编写FormAchievementOnClose事件,释放创建的用于存放树型结构中间数据的列表和用于输入成绩的TEdit对象,关闭数据集并将成绩占比数据保存到文件中,相关代码如下:

procedure TFormAchievement.FormClose(Sender: TObject; var Action: TCloseAction);

begin

  TreeList.Free;

  DMServerDB.ADODataSetAchievement.Filter := '';

  DMServerDB.ADODataSetAchievement.Close;

  DMServerDB.ADODataSetStudent.Close;

  IniFile.WriteString('ScorePer', 'Achievement1', Edit1.Text);

  IniFile.WriteString('ScorePer', 'Achievement2', Edit2.Text);

  IniFile.WriteString('ScorePer', 'Achievement3', Edit3.Text);

  FreeEditAchievement();

end;

下面是在图6的成绩输出报表界面中编程计算出各档成绩的人数。先在打印报表前将各档成绩的人数清零,因此需要定义报表对象的BeforePrint事件,相关代码如下:

procedure TFormPrintAchievement.QuickRepBeforePrint(Sender: TCustomQuickRep;

  var PrintReport: Boolean);

Var

  i : Integer;

begin

  for i:= 0 to 5 do Scope[i]:=0;  // 六档成绩人数清零

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

end;

每输出一个学生,按学生成绩将相应档成绩的人数加1、总人数加1,因此需要定义细节带对象的BeforePrint事件,相关代码如下:

procedure TFormPrintAchievement.DetailBand1BeforePrint(Sender: TQRCustomBand;

  var PrintBand: Boolean);

var

  AchievementScope : SmallInt;

begin

 with DMServerDB do begin

 // 定位学生,在报表中显示学生名

  ADODataSetStudent.Locate('StudentID',ADODataSetAchievement.FieldValues['StudentID'], []);

  // 将成绩转化为0,1,2...,10各档

  AchievementScope:=Round(ADODataSetAchievement.FieldValues['Achievement']) Div 10;

  Case AchievementScope of

   0..5:    Inc(Scope[0]);  // 不及格人数加1

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

  end;

 end;

 Inc( NumCount ); // 总人数加1

end;

在汇总带中显示出各档成绩的人数和百分比,因此需要定义汇总带对象的BeforePrint事件,相关代码如下:

procedure TFormPrintAchievement.SummaryBand1BeforePrint(

  Sender: TQRCustomBand; var PrintBand: Boolean);

begin

 QRLabelScope1.Caption := IntToStr(Scope[4]+Scope[5])+','+

    Format('%.1f',[(Scope[4]+Scope[5])*100.0/NumCount])+'%';  // 优秀的人数及百分比

  推荐精品文章

·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