看到Demo里有一个主细表的例子,但是用的Table的MastField。ADOQuery不支持MastField,刚接触FR2.5,两天了都无从下手。
实例描述如下:
ADOQuery_Class:取得班级信息
ADOQuery_Student:取得学生信息
在Band1中显示班级信息
在Band2中根据学生班级显示学生信息
显示格式大体如下:年级信息:(mastband)
一年级
学生信息:(DetailBand)
张三
李四
……
年级信息:(mastband)
二年级
学生信息:(DetailBand)
赵五
陈六
……

解决方案 »

  1.   

    1.一個ADOQuery導出全部信息,
    2.分組列印.
      

  2.   

    设置细表的datasource为主表对应的datasource,就可以了,
    如:主表为AQM,细表为AqD
    aqD的sql语句要带where语句,参数根主表中的关键字段对应在fasterReport中,
    把这两个表,添加到数据字典中
    在模板上
    添加一个band为master data band,对应Aqm
    添加一个band为detail data band,对应AqD
    ,这样就可以了
      

  3.   

    1:先设置好主表ADO与从表ADO的关联。如果主从表的ADO没有关联好,则每个厂家下都会打印出
    所有产品。
    主从表ADO的关联是这样的:
    设置从表的DataSource属性为与主表相連的DataSource控件,
    设置从表的MasterFields属性为与主表相关联的字段。设置好后可用二个DBGrid查看一相主从表是否关联。2:如果主从表设置好,则报表中可如此设置即可。
    在Page1中放置一个MasterData,其数据源选择为主表;
    再放置一个DetailData,其数据源选择为主表,在其上放置主表字段的frMemoView,如'厂家';
    再放置一个SubDetailData,其数据源选择为从表,在其上放置从表字段的frMemoView,如'产品';Preview,OK!
      

  4.   

    theone_jxm() 
    ADOQuery 可以设置MasterFields 吗?好像没有!
     fyje(云中仙) 
    你这个方法很好,我会试试的。
    不过我已经用笨办法解决了。
    我在MastDdata中链接班级信息
    在DetailData band中链接学生信息
    在DetailData Band的onbeforeprint事件中这样写
    if [ADOQuery_Student.“ClassNo”]<>[ADOQuery_CLass."ClassNo"] then
       Band2.visible:=False;
    这样很笨但能用。
    谢谢大家,散分!