哪里有有关rave的学习资料,知道的请帮忙告诉一下!!!!!

解决方案 »

  1.   

    2003-10-13 1:03:10    关于自动展栏与画线延长的做法。RAVE的那个datamemo的expandparent:=true能自动展栏确实是一个很爽
    的功能。
    但如果我们是自己新建的datamemo,却在这个方面会出现错误,我现在
    也搞不清楚究竟是什么原因,怀疑是RAVE的一个小BUG,第三方控件有
    些意外也性正常。那我们就得避开它而进行操作。
    具体的做法是先在你的RAVE设计器里,在那个databand里放上几个datamemo,
    在用的时候修改它,而不是去创建它,就一切OK了。至于那条画线的anchor如果是(V-strech/left)的话,可以延长,但是这个
    在脚本生成的时候也会出现一些问题。那个anchor是一个TraveAnchor的值,
    但其值的表达方法我找寻了N天都没有找到可以让我编绎过去。甚至于我用
    已有的边框(一般情况下脚本生成还是画一些基本的框框容易实现些),以
    myDAtamemo.anchor:=(rvproject1.projman.findcomponent('asdf',mypage) as TRaveVline).anchor
    都编绎不过去,甚为恼火,于是解决方法同上,也是预先在设计器里画上有限
    的几条线,把这些anchor设好,并把left设成与边框重叠(这样就视觉上可以
    满足的。),在脚本中控制它的left值就OK了。  
     2003-10-18 1:52:17    想不到QXJ大侠大驾光临。QXJ大侠大驾光临,真是让我荣幸之至,还望多多指教。:)
    你不是在那篇贴子里说要寻求其他出路了么? 现在如何?他的那个贴子确实是经典,个人认为应该算是中文第一手资料,呵呵,我也再
    贴一遍,大家看看:
    http://expert.csdn.net/Expert/topic/1743/1743788.xml?temp=.1427576  
     2003-10-27 15:03:22    to qxj: 
     QQ上可以通过验证否?
     我的好友列表已经期待你好久了。 :)  
     2003-10-27 16:03:48    关于一些anchor,pagesize等的赋值。前面讲到datamemo的时候,说到anchor赋值不能通过。今天突然用起了paperSize的时候试了一下,用整数输入,有变化。
    于是在dataMemo里也试了一下,用整数也有变化。于是怀疑这个整数是否为该属性取值的序号。
    但在paperSize里验证,发现有变化,但是没有发现相应的规律。哪位同志如果发现了,告诉告诉。谢谢。  
     2003-10-27 20:54:33    上面那个QXJ文档的链接不能用了。这个富翁笔记似乎只有第一栏可以修改,其他栏不能修改。
    上面提到的QXJ的文档已经不是那个链接了,它在后面的评语里也有说到,
    我这里再贴一遍,以便大家参阅。
    http://search.csdn.net/expert/topic/53/5311/2003/5/6/1743788.htm  
     2003-12-1 1:49:30    几个问题的自问自答。(CSDN)http://expert.csdn.net/Expert/topic/2508/2508675.xml?temp=.2401087几个问题:
     1、如果实现空白表格?
       比如说,某些表格每一页都是填满整页的,如果数据不足以填充整页,
     则其他的行为空白行,填满整页。
     2、表底栏。
       意思就是说如果建一个栏,让那些内容老是处于末页页脚的位置。如果
     上面的问题解决了,可能这个就不是问题了。
     3、左边的“合并单元格”。
       我不知道大家是如何实现类似“合并单元格”的功能,我现在的做法是
     一种愚笨的方法,就是在REgion的左边画一个框框但这个框框的高度
     要保证它的上线与下线与表格内的其他记录内容相匹配时就出现了难题,因
     为由于memo的展栏,那个高度很难估计。大家是如何实现的?或者说,这个
     高度如何取得?
    谢谢了。
    我自己的问题已经解决。
    现把我的解决思路说出,希望能有人遇到时会有些帮助。
      一、如果是只有一页,而且刚好那里面又都没有用到会换行的
    datamemo,那么,可以从数据集着手。select top 20 * from 
    (select a,b,c from table where ...
    Union all select null,null,null from table) AAA
      二、当然,第一步解决了,这一步随之解决。这里要注意到的
    就是一个关于BAND的PositionMode属性。它有三种属性,选择pmAbsolute
    可以选择固定的位置。再加上BandStyle设置成first,就可以实现
    末端表底打印。
      三、在左边加一个方框,把背景前景设置好,在上面放一个合
    适位置的Memo,下端不要划线,数据栏里的线也不要画到这里,然
    后在底端紧跟一个Band,画一条top为零的Hline。 
      

  2.   

    我在DELPHI版块RAVE报表上解决的问题较多,而且发现提出的问题都有很大的相似性(本来提交了几个FAQ,但不知何时才能通过审核),所以就先整理一下自己的一点经验,希望能带给大家一点帮助,如果你觉得没什么用大可不必看.:)以下的程序在XP+D6+Rave5.1下调试通过,问题1:动态的设置报表中的内容   uses     RVClass, RVProj, RVCsStd;   var     MyPage: TRavePage;     MyText: TRaveText;   begin     RaveProject1.Open;     With RaveProject1.ProjMan do begin       MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage; //查找PAGE       MyText := FindRaveComponent('Text1',MyPage) as TRaveText; //查找TEXT       MyText.Text := 'Boland Delphi'; //设置报表中文本内容       MyText.Color := clGreen; //设置颜色     end; { with }     RaveProject1.ExecuteReport('Report1');     RaveProject1.Close;   end;问题2:保存报表为HTML或PDF格式(对于PDF格式不支持中文)   rvproject1.projectfile :='E:\delphi\rave\files\test.rav';   rvproject1.Open;   rvproject1.SelectReport('report1',true);//选择要打印的报表   RvSystem1.DoNativeOutput:=false;   RvSystem1.DefaultDest:= rdFile;//保存成文件   RvSystem1.RenderObject:=RvRenderHTML1;//保存成HTML格式 或RPRenderPDF1;   RvSystem1.OutputFileName:='files/test.html'; //存放的路径   RvSystem1.SystemSetups:=RvSystem1.SystemSetups-[ssAllowSetup];   try      rvproject1.Execute;   except      ShowMessage('生成报表文件错误!');   end;   对于只有一页报表那是没有问题的,但对于多页在D6下和D7有所不同.D6下可以生成许多页,但D7下却   不行,不知为什么?D6下的RAVE版本是5.1,   问题3: IntraWeb和Rave的无缝连接       我的思路就是先把报表保存成HTML或PDF格式,然后再用IE调用      const          AIPOptions: string = 'toolbar=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,location=no,directories=no,width=1000,height=700';      var          aipurl :string;      rvproject1.Open;   rvproject1.SelectReport('report1',true);//选择要打印的报表   RvSystem1.DoNativeOutput:=false;   RvSystem1.DefaultDest:= rdFile;//保存成文件   RvSystem1.RenderObject:=RvRenderHTML1;//保存成HTML格式   RvSystem1.OutputFileName:='files/test.html'; //存放的路径   RvSystem1.SystemSetups:=RvSystem1.SystemSetups-[ssAllowSetup];   try      rvproject1.Execute;//生成报表      AIPURL := WebApplication.URLBase + '/files/' + 'test.html';  //IE打开第一页报表         AddToInitProc('NewWindow("' + AIPURL + '", "Agenda", "' + AIPOptions+'");');   except      webapplication.ShowMessage('生成报表文件错误!');   end;   问题4: 让最终用户动态的修改报表格式.        with RvProject1 do   begin      DLLFile :='D:\Rave5\Redist\RaveSolo.dll'; //如果不指定此文件则运行时会报出错      ProjectFile :='E:\delphi\rave\files\test.rav'; //指定RAV文件      LoadDesigner :=true;      If Design then begin           If MessageDlg(Trans('Save changes to project ') +                               ProjectFile + '?',                               mtConfirmation,                               [mbYes,mbNo,mbCancel],0) = mrYes then           begin             Save;//保存           end; { if }      end; { if }   end;{with}       此程序在D6+Rave5.1下调试通过.在D7下就用Rave.dll
     
     
     回复人: qxj(Borland中国&游民) ( ) 信誉:135  2003-5-6 9:16:39 得分:0  
     
     
     问题5: 设计时通过程序动态向报表增加一个TEXT        uses        RVClass, RVProj, RVCsStd,RvCsRpt;         var   MyBand: TRaveBand;   MyRegion: TRaveRegion;   MyPage: TRavePage;   MyText,mytext1: TRaveText; begin   RvProject1.Open;   With RvProject1.ProjMan do begin       MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage;       MyRegion:= FindRaveComponent('Region1',MyPage) as TRaveRegion;       MyBand := FindRaveComponent('Band1',MyRegion) as TRaveBand;       MyText:=TRaveText.Create(Myband);       MyText.Parent:=Mypage;       MyText.Name:=GetUniqueName('Text125',MyPage,false);       MyText.Top:=0.2;       MyText.Left:=0.7;       MyText.Width:=200;       MyText.Height:=200;       MyText.Text:='Delphi';              MyText.Font.Size :=20;//设置字体的属性       MyText.Font.Color :=ClRed;       MyText.Font.Name :='隶书';       AddComponent(MyText);   end; { with }   RvProject1.ExecuteReport('Report1');   RvProject1.Close;     问题6:在报表中插入日期或页数      在RAVE设计时增加一个DATATEXT控件,其DATAFIELD属性有相关的设置      Report Variables中有CurrentPage当前页,TotalPages总页数,DateShort短日期,DateLong长日期,      TimeLong 长时间       问题7:通过参数向报表传值,和问题1有点相同      With RaveProject1 do begin     Open;     SetParam('ParamName','ParamValue');     ExecuteReport('Report1');     Close;   end; { with }    问题8:去掉打印预览时出现的Output Options对话框        RvSystem.SystemSetups中的ssAllowSetup 设为False