我有两个数据表,一个是教师的信息TEACHER,一个是学生的信息STUDENT。关系为一个教师可以对应多个学生。
 我现在通过两个FORM,其中一个是FORM1有一个LABEL:输入教师号 一个EDIT,还有两个BUTTON,一个为预览,一个为打印。
  当我输入教师号时且按下BUTTON时,FORM2报表打印、预览中显示的是我输入的教师号所对应的学生的信息。
  请问如何实现???

解决方案 »

  1.   

    就是主從明細表的方法!隻是教師表是加上條件查尋!可參考delphi文件夾裡的demo!
      

  2.   

    用一个QUERY即可搞定:
    在FORM2中USE FORM1然后QUICKREP1.DATASET=query1
    FORM2.quickrep1.query1.close;
    FORM2.quickrep1.query1.sql.clear;
    FORM2.quickrep1.query1.sql.add('select *from student where'+STUDENT中的教师字段=''''+FORM1.EDIT.TEXT+'''');
    FORM2.quickrep1.query1.open;
      

  3.   

    该说的楼上都说了。我只好挑根骨头:FORM2.quickrep1.query1.close;中的query1应该是query...
      

  4.   

    为什么会出现:[Error] PrintBaodanFrm.pas(78): Undeclared identifier: 'query1'这个呢?是不是缺少了什么东东了?
      

  5.   

    强烈同意
    QUICKREP1.DATASET=query1
    FORM2.quickrep1.query1.close;
    FORM2.quickrep1.query1.sql.clear;
    FORM2.quickrep1.query1.sql.add('select *from student where'+STUDENT中的教师字段=''''+FORM1.EDIT.TEXT+'''');
    FORM2.quickrep1.query1.open;
      

  6.   

    变量名错了嘛,改过来就是了。QUICKREP1.DATASET=query1
    query1.close;
    query1.sql.clear;
    query1.sql.add('select *from student where'+STUDENT中的教师字段=''''+FORM1.EDIT.TEXT+'''');
    query1.open;
      

  7.   

    同意,上面提示你的变量名为定义啊,检查变量名。
      还有借楼住底盘用一下啊。
      D7中的QREPORT控件包到哪去了?怎么没有啊,是不是我的d7有问题啊 ?
      

  8.   

    楼上的D7用的是RAVE,你要QREPORT需要另外安装。
    楼主,这段代码可以放在报表预览的按钮里面,你的QUERY可能不叫QUERY1,所以会报错误。改成你的QUERY名称就可以了。