以前的主从报表是以一个adotable作主表, adodataset作从表,
关联字段是:
adotable1---> t_sect
         字段 sect_id  段道编号
adodataset1-----> 查询语句
         字段 user_sect  用户段道 
         sect_id <-------------->  user_sect
    查询语句(commandtext)如下:
    select * from t_user_info,t_order_frm,t_milk_info where t_user_info.userinfo_id=t_order_frm.userinfo_id and t_order_frm.milk_id=t_milk_info.milk_id
      如果在quickrep上都设好属性,则显示正常.如果是在程序中动态设置commandtext
则不能实现主从,只是查询出符合条件的记录并全部显示出来,变成与adotable1毫无关系了.程序如下,请各位指教!
r_deliver2.ADODataSet1.Active:=false;
r_deliver2.ADODataSet1.CommandText:='select * from t_user_info,t_order_frm,t_milk_info where t_user_info.userinfo_id=t_order_frm.userinfo_id and t_order_frm.milk_id=t_milk_info.milk_id;
r_deliver2.ADODataSet1.DataSource:=r_deliver2.DataSource3;
r_deliver2.ADODataSet1.MasterFields:='sect_id';
r_deliver2.ADODataSet1.IndexFieldNames:='user_sect';
r_deliver2.ADODataSet1.Active:=true;

解决方案 »

  1.   

    你在从表的sql语句里并没有设置关联字段呀,怎么关联?真不知你原来是怎么关联上的
      

  2.   

    我设置的关联是在TADODATASET中的DATASOURCE和MASTERFILELDS中设置的,不用AODQUERY的原因就是ADOQUERY没有可以设置主表的属性无法实现以下界面.
    段道名称
        奶品名称 用户姓名 地址  份数

    1段道
        光明纯牛奶200ML 王飞  光明小区2号 2
    2段道
       蒙牛巧克力牛奶150ML 李里  京户大道234号 1原来设计是要打印出某段道的投递单,只需根据段道号过滤adotable1,则adodataset1 也只出现该段道信息.现在的情况是如要打1段道信息报表是
    1段道
        光明纯牛奶200ML 王飞  光明小区2号 2
       蒙牛巧克力牛奶150ML 李里  京户大道234号 1
    程序中只要自动给commandtext赋值就是这样,而要是刚开始直接在控件中写好则正常!