有两张表,表1记录学生的基本信息,表2记录不合格成绩,表1字段如下
学号,姓名,所属院系,表2字段如下学号,课程号,成绩,两个表通过学号相连,因为并不是每个学生都有不合格的成绩,因此要求打印出表1的所有记录,而对于表1的记录来说,若表2中有与之对应的不合格的成绩的记录则打印,否则不打印标表2,而且表1,表2分别在一张纸上打印,请问如何才能实现.
不合格课程打印格式如下:(不合格课程最多不超过7门,故有7条虚线)
不合格课程名              分数
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
关键:7条虚线必打,有几个不合格课程就打印几个

解决方案 »

  1.   

    没什么复杂呀
    分别生成两个sql产生两个报表不就成了
    select * from 表1 
    select * from 表2 where 成绩<60
    也许我没明白你的意思,回家了明天再看
      

  2.   

    sql语句就是这样写
    select a.*, b.* from 表1 as a
    left join (select * from 表2 where 成绩<60) as b on a.id = b.id 
    报表怎么控制可不是一两句话写得出来
      

  3.   

    主子表,建议使用Fastreport有主项数据和子项数据,通过设置关联字段来实现。
      

  4.   

    我的公司不能上网了,不能发邮件给你。不好意思。
    给你一个思路就是加一个子band,然后再在上面画表格线,然后在细项角的onbeforeprint事件中加入如下代码:
    begin
      while  freespace>child.height do
       showband(child);//child为子band的名称;
    end;
    如果必须要打7条虚线的话,那具体细节可能自己要好好设计了。比如整个页面的高度、child的高度、主项数据和细项数据的高度都要算好。