FastReport 主从表显示

主表:

单号   客户  

aa      abc

bb      bac

cc       cab

从表:

单号     产品明细   数量

aa        A1             100

aa        A2              500

aa         A3               1000

bb        B1                3000

bb         B2               1500

cc          C1                200

cc          C2                280

cc          C3                300

期望报表格式:

单号        客户         产品明细          数量

aa            abc         A1                   100

                              A2                    500

                              A3                    1000

bb            bac         B1                    3000

                               B2                    1500

cc             cab         C1                    200

                               C2                     280

                                C3                     300

我用以下方法实现可是不能完全满足我的要求:

用 adoquery1 连接主表(select * from 主表),然后在adoquery1的afterscroll过程中用adotable1与从表相连(adotable1.active:=false; adotable1.fieldvalues['单号']=dataset.fieldvalues['单号']); adotable1.active:=true); 再用fastreport 的数据库(dbMaster,dbDetail)分别与adoquery1和adotable1相连,在fastreport中设master数据字段database为dbmaster,detail 数据字段database为dbdetail.

然后是frxreport1.preparereport(true); frxreport1.print; 打印出报表。

问题:1:为何从表用adoquery不能达到以上报表效果?只是连续显示相同结果。

           2:以上报表打印一次后,然后在dbgrideh中选择另一个订单号打印时,打印出的还是前面刚刚打印的那份报表?这是为什么?

posted @ 2013-04-29 13:30  小天1981  阅读(507)  评论(0编辑  收藏  举报