-----------------------------------------------------------------------------------------------------------
参考资料
1.在窗体上加RvProject1,RvSystem1,
RvProject1.Engine:=RvSystem1
RvProject1.LoadDesigner:=False
RvProject1.ProjectFile:='C:/MyRave/Project1.rav'
2.在datamodule1中加table1,table2,RvTableConnection1,RvTableConnection2,
table1连上DBDEMOS数据库的 表customer[主表],table2连上DBDEMOS数据库的 表orders[从表]
3.设table2.filteroptions:=[foNoPartialCompare],
RvTableConnection1:
RvTableConnection1.Runtimevisibility:=rtEndUser
RvTableConnection1.table:=table1
RvTableConnection2.Runtimevisibility:=rtEndUser
RvTableConnection2.table:=table2
4.在Page1:Page Component的属性页上设
Page1.bin:=Middle Tray
Page1.PagerSize:=Custom
5.在RaveReport的设计环境中
加DataView1,Dataview1连RvTableConnection1
加DataView2,Dataview2连RvTableConnection2
6.在RaveReport的设计环境中
在page1上加Region1,Databand1,Databand2,在Databand1,Databand2上加数据显示控件
7.在Databand1,Databand2上设
Databand1.dataview:=DataView1
Databand2.ControllerBand:=Databand1
Databand2.dataview:=dataview2
Databand2.DetailKey:=Custno
Databand2.MasterDataView:=dataview1
Databand2.MasterKey:=Custno
8.设DataText控件
DataText1.DataField:=custno
DataText1.Dataview:=dataview1
DataText1在databand1上
DataText2.DataField:=custno
DataText2.Dataview:=dataview2
DataText2在databand2上
9.设databand1,databand2
在databand1的属性框上点击属性Bandstyle,会弹出对话框,选Print Occurrence下的First,New Page
在databand2的属性框上点击属性Bandstyle,会弹出对话框,选Print Occurrence下的First,
Print Location下的Detail
按上述步骤就可以做出一张主从报表
目前我知道的有两中做法:
第一
不要在前台设置硬性质的MastDetail,也就是说不要通过DataSet的MastSource属性来设置
要不然他死也不出来,前台通过在主表的DataSet的AfterScroll下面
动态过滤子表明细,使用filter,或者SQL查询不要用SetRange
报表格式设置通过放置两个DataBand,把明细表的DataBand的Controllerband
指向主表的DataBand,点BandStyle属性,钩上Detail;
第二
直接在报表中设置,前台不要任何代码,
上面步骤不变,下面设置MasterKey
masterKey为主表的Key,DataView
DetailKey为从表Key
但是不支持复合主键