我的程序是先用Adoquery查询出结果到fastReport中列印主从表,用了两个ADOQuery,两个frxDBDataset,可在fastReport中就是做不出主从表,只有先用adoTable设好主从表后,在FastReport的主从表就可以用!
我的数据是查询生成的,不可能用AdoTable来设吧!

解决方案 »

  1.   

    老大,我用的是Access,能告诉我怎样通过键动态视图来实现吗!
      

  2.   

    adoquery也可以的,你是不是有的地方设好
    adoquery1为主表,adoquery2为从表的话
    把adoquery2.datasource设为adoquery1设了么?
    adoquery2里面的sql怎么写的?
      

  3.   

    我是这样做的:Adoquery1查主表,Adoquery2查从表(关键字=主表的关键字),frxDBDataset1与Adoquery1相连,frxDBDataset2与Adoquery2相连.
    查出来的数据没错,但是在报表里却显示成一个单号下把不属于此单号的所有数据都显示出来了!
      

  4.   

    让你写sql你怎么没写出来
    大致是这样的
    adoquery1,sql:
    select id,something1 from tb1
    adoquery2,sql;
    select something2 from tb2 where masterid=:id --此处id为tb1里面的字段名然后把adoquery2.datasource设为adoquery1就可以了,没有别的设置
      

  5.   

    To dreamover(梦醒了)
        我的SQL也差不多是你這樣的意思啊!
        SQL:
           Adoquery1.SQl.Add('Select * From Main Where Fid>='+''''+Edit1.text+''''+' And   Fid<='+''''+Edit2.text+'''');
           Adoquery2.SQl.Add('Select * From Sub,Main Where Sub.Fid=Main.Fid And Sub.Fid>='+''''+Edit1.text+''''+' And   Sub.Fid<='+''''+Edit2.text+'''');
       執行完後,在報表裏顯示的格式變成了:S50500001
                                                   001 ...
                                                   002 ...
                                                   001(這張單實際上是S50500002的單)
                                                   002
                                                   003
                                                   001(這張單實際上是S50500003的單)       
                                                   ... 
    我希望的格式是:S50500001
                             001 ...
                             002 ...
                   S50500002 
                             001 ...
                             002 ...
                   ........
                             ...
      

  6.   

    Adoquery1.SQl.Add('Select * From Main Where Fid>='+''''+Edit1.text+''''+' And   Fid<='+''''+Edit2.text+'''');
    Adoquery2.SQl.Add('Select * From Sub Where Sub.Fid=:Fid');adoquery2.datasoure=adoquery1;改成这样
      

  7.   

    把兩張表的內容用一個SQL語句篩選出來,然後用分組報表做,可以達到你的目的
      

  8.   

    就是在報表中加入GROUP HEADER的然後設定其DATA FIELD為 "S50500001"的字段名稱就可以了
      

  9.   

    不好意思,分組我不是很會做,是拉一個 Group Head然後設定關鍵字就可以了嗎?好像不行啊!
      

  10.   

    我試了,我是把S50500001這個字段放在Master Data中,把其餘的放在DetailData中,還是不行啊!
    多謝了!
      

  11.   

    把S50500001這個字段放在GROUP HEADER中
    其余的放在Master Data中
    設定GROUP HEADER其DATA FIELD為 "S50500001"的字段名稱
      

  12.   

    提示:No Data Band For The group groupHead1
    我在想想看
      

  13.   

    用Group好像一定要有Child,不然就會出現No Data Band For The group groupHead1
      

  14.   

    多謝各位了,可以了!的確是設定好Group!多謝大家的幫忙!