报表问题,急!!(50分)

  • 主题发起人 主题发起人 cslotus
  • 开始时间 开始时间
C

cslotus

Unregistered / Unconfirmed
GUEST, unregistred user!
根据成绩表中的学生成绩在报表中打印学生的成绩等级,如60-70分为及格,70-80分为良好
,怎样实现?
 
easy.
在字段的ongettext事件中。
if displaytext then
var
studentcj: float;
begin
studentcj := fieldbyname('aaa').asfloat;
case studentcj of
60..70: text :='及格'
70..80: text :='良好'
end;
end;
 
在onGetText事件里面写上:

if (text>'60') and (text<='70')
text := '及格';
.......

另外一个方法是添加一个计算字段。
 
///////////////////////////////////////////
假如数据表有10条记录,将这10条记录通过QRdbtext来打印10张表单出来。
每张单据使用一条数据。
我用到了,QRband来显示表头如“出库单”,然后用QRSUBdetail来装入
数据,但是,我每次这10条数据都出现在一张表里,而我要实现的是打印到10
条记录,每张一条,
//////////////////////////
你也帮我看看好吗?
我很急
同样也给你加分!
 
打印最好自己做,才能符合你的要求。
另外,ongettext好像也有问题。
procedure myGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if (sender.asfloat>60) and (sender.asfloat<='70')
text := '及格'
....
end;
 
to hurryman:
你的问题我已经在你的帖子里回答了。
这样的报表我做过,应该可以的。
 
能不能不修改表格构,而仅用程序或者是QuickReport上的控件实现呢?
 
后退
顶部