一个困扰我的报表打印问题,请大家帮忙! !(只有这么多分了)(15分)

  • 主题发起人 主题发起人 mmgoodboy
  • 开始时间 开始时间
M

mmgoodboy

Unregistered / Unconfirmed
GUEST, unregistred user!

现在有一个数据库表 教学(教师姓名,班级名称,课程名称) 请问如何实现下面报表打印

教师姓名 班级名称 课程名称

计大99-1 数据库原理
王明 计大99-2 面向对象编程
电气00-1 单片及原理

自本99-1 自控原理
李息 自大00-1 专业英语

下面还有好多记录,我就不一一写出来了.请大家帮忙!
 
我想了许久,好像除了重写控件,别无他法。目前正在关注:控件尚未写出。
不知道使用现有的那款控件可以搞定。如EReport,CReport,RReport,QReport?还是
其它?
 
我想用delphi自带的控件.好像没有办法实现,主要是教师姓名那里要把它合并成一个名字.
还有我下载了FastReport,可是我安装不了,安装了用到它的时候,编译是就出错.说什么缺少
.dcu文件.
希望大家继续关注,这是我的毕业设计中遇到的问题.如果不解决的话恐怕没有时间了.
 
增加library 呀。
 
to弄影:
老兄,请你说清楚点好吗?
 
主从表的打印,可以参考QuickRep自带的例子。
 
Tools->Evironment Options->Library->Library Path 里面增加FastReport的路径
 
这是主从表的打印,你可以这样:
主表:select distinct 教师姓名 from 教学
从表:select 教师姓名,班级名称,课程名称 from 教学 where 教师姓名= :a
在主表的afterscroll 事件里刷新从表,
在QuickReport的OnNeedDate事件里控制打印,
从主表的第一条记录打起,打完一条记录后主表下移一条记录,打到从表结束后停止
 
>>主要是教师姓名那里要把它合并成一个名字
什么意思?
你的报表用QUICKREP可以实现!方法是:
1、在SELECT 语句中增加一个 COUNT(*)和GROUP子句
select 教师姓名,班级名称,课程名称, count(*) as rc from table where ... group by 教师姓名
2、设全局量jls: integer;xm : string;在QUICKREP的第一列中放一个QRLABEL
3、在QUERY.open 后写入jls := 0;xm := '';
在QRLABEL的ONPRINT中写:
if trim(xm) <> trim(query.fieldbyname('教师姓名').asstring) then

begin
jls := 0;
xm := query.fieldbyname('教师姓名').asstring;
end;
jls := jls + 1;
qrlabel.caption := '';
if jls = query.fieldbyname('rc').asinteger div 2 + 1 then
qrlabel.caption := trim(xm);
 
to svw0506:
从表:select 教师姓名,班级名称,课程名称 from 教学 where 教师姓名= :a
中后面那个:a是什么意思啊?请告诉我。
 
变量 ,你可以设定datasource的。
 
:a 是可以传递的参数
即主表里的教师姓名
 
哦。我清楚了。谢谢你们,我现在还有个表
学习 (课程名称,班级名称,考核类型,理论周数,理论周节数,随堂实验节数,单列实践类型,单列实践周数,地点)
我要把 理论周数×理论周节数+随堂实验节数 折算成 一个老师的课时量 加到我上面问的问题
的表中统计每个老师的课时量再打印出来。该怎么办?
 
谢谢各位了。!!!
 
后退
顶部