小弟初次用RAVE来做报表,把Rave 中怎么把外部的一个Form上的Edit.Text的值赋给Rave中Band上的一个TexT时总是出错。
 我的程序是这样的:
 with Rvproject1.ProjMan  do  //放一个TRvproject到窗体
  begin
    page1:=findravecomponent('myrave3.page1',nil) as TRavePage
    region1:=findravecomponent('Region1',page1) as TRaveRegion;
    band1:=findravecomponent('Band1',region1) as TRaveBand;
    text1:=findravecomponent('Text1',band1) as TRaveText;
    text1.Text:=edit1.Text ;
  end;
  rvproject1.Execute ;

解决方案 »

  1.   

    不用看了。
    你的band1,text1的parent错误。
    是这样的,这些控件的parent是属于你写的那个,但它的上一级
    统一是page.
    所以,你那两句改成如下就OK了:    band1:=findravecomponent('Band1',page1) as TRaveBand;
        text1:=findravecomponent('Text1',page1) as TRaveText;更多内容,请参考:
    QXJ大侠的:http://search.csdn.net/expert/topic/53/5311/2003/5/6/1743788.htm
    偶ICET的:http://www.delphibbs.com/keylife/iblog_show.asp?xid=2939
      

  2.   

    你的报错是不是access violation at address 004dc518 in module 'project1.ext' read of address 00000000.???
    那你是少了打开报表, RvProject1.Open;以下程序在WIN2K+RAVE5.1下调试通过
    uses
        RVClass, RVProj, RVCsStd,RvCsRpt;var
      MyPage: TRavePage;
      MyText: TRaveText;
      MyBand: TRaveBand;
      MyRegion: TRaveRegion;
    begin
      RvProject1.Open;
     with Rvproject1.ProjMan  do  //放一个TRvproject到窗体
      begin
        MyPage:=findravecomponent('report2.page1',nil) as TRavePage;
        MyRegion:=findravecomponent('Region1',MyPage) as TRaveRegion;
        MyBand:=findravecomponent('Band1',MyPage) as TRaveBand;
        MyText:=findravecomponent('Text1',MyPage) as TRaveText;
        MyText.Text :=edit1.Text ;
      end;
      rvproject1.Execute ;--------------------------------------------------------
    在错的时间遇见错的人 是一种伤痛 
    在错的时间遇见对的人 是一种遗憾 
    在对的时间遇见错的人 是一种心伤 
    只有在对的时间遇见对的人才是一种幸福
      

  3.   

    对啊。原来是我还没有打开报表啊。谢谢你啊。楼上的QXJ,你真行啊。