ReportBuilder中主从报表的问题?(50分)

  • 主题发起人 主题发起人 bigqll
  • 开始时间 开始时间
B

bigqll

Unregistered / Unconfirmed
GUEST, unregistred user!
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
DataSource1: TDataSource;
DataSource2: TDataSoruce;
ppDBPipeline1: TppDBPipeline;
ppDBPipeline2: TppDBPipeline;
ppReport1: TppReport;
ppSubReport1: TSubReport;
以上是我用到的控件,是在程序中自动建立的
SQL1是主表的SQL语句
SQL2是从表的SQL语句
主表和从表都有“编号”字段,且通过这个字段相连。
以下的代码是在程序中手动编写的。
DataSource1.DataSet := ADOQuery1;
DataSource2.DataSet := ADOQuery2;
ppDBPipeline1.DataSource := DataSource1;
ppDBPipeline2.DataSource := DataSoruce2;
ppReport1.DataPipeline := ppDBPipeline1;
ppSubReport1.DataPipeline := ppDBPipeline2;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(SQL1);
ADOQuery1.Open;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(SQL2);
ADOQuery2.Open;
ppDBPipeline2.MasterDataPipline := ppDBPipeline1;
ppDBPipeline2.MasterFieldLinks := '编号->编号';
在Reprot中各种字段的设置的代码就不写了
运行ppReport.Print后,主表显示正常,但是子表显示的是所有的记录,且每个主记录下的子表的记录完全相同。
SQL1和SQL2不可能有错误,因为在dxGrid中的主从表的记录显示是正确的。
报表中的错误在哪里呢?
非常感谢!!!
 
我也有同样的问题
 
var
llink: TppMasterFieldLink;
begin
llink := TppMasterFieldLink.Create(ppDBPipeline2);
llink.Parent := ppDBPipeline2;
llink.Name := ppDBPipeline2.GetValidName(llink);
llink.DetailFieldName := '编号';
llink.MasterFieldName := '编号';
.....
.........

别废话了,给分吧,一定行的

 
我也有同样的问题
 
接受答案了.
 
后退
顶部