有关RAVE的常见问题及解决方法,欢迎大家讨论.

qxj 2003-05-06 09:16:15
加精
我在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
...全文
738 114 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
114 条回复
切换为时间正序
请发表友善的回复…
发表回复
railgunman 2003-08-29
  • 打赏
  • 举报
回复
up
senhor 2003-08-25
  • 打赏
  • 举报
回复
UP
vga 2003-08-23
  • 打赏
  • 举报
回复
我如何修改 rave 5.11/5.12 Demo 的报表呀,它放在那里,运行时有,可怎么调出来学习、修改呀?它的报表项目文件怎么找不到呀?
vga 2003-08-22
  • 打赏
  • 举报
回复
虽然 零值不打印设置: ##.## 是这样,但此时,小数位是不对齐的,例如其结果可能是

23.23
25
而不是
23.23
25.00

若 设置: ##.00 则 0 将被显示出来

在fastreport 等报表系统中有0值不显示的设置,所以此问题利用这个方法还不是很好!
大家用什么方法啊?
wzds2000 2003-08-22
  • 打赏
  • 举报
回复
怎样在用rave的命令更改打印机,也就是说不再RvProject.Execute;执行后出现的界面里改?谢谢!
A_ZHU 2003-08-22
  • 打赏
  • 举报
回复
正在用这东东,感谢!

收藏先!
wdsimon 2003-08-18
  • 打赏
  • 举报
回复
楼主好人
lgqwelcome 2003-08-18
  • 打赏
  • 举报
回复
为何我的Delphi6中没有Rave5.1 ???
如果是没有,那请问如何安装??
谢谢!!!
vga 2003-08-17
  • 打赏
  • 举报
回复
我找到答案,零值如何不打印: 将数据视图 中字段的 formatmask 设定为 # 或 ##.# 即可
cnhgj 2003-08-16
  • 打赏
  • 举报
回复
UPUP
chenquan 2003-08-16
  • 打赏
  • 举报
回复
不错,辛苦啦
xuemingjie 2003-08-16
  • 打赏
  • 举报
回复
学习rave Up
daniel2008 2003-08-16
  • 打赏
  • 举报
回复
up
jackie168 2003-08-16
  • 打赏
  • 举报
回复
老大,為什要說要離去。。。。?
cron 2003-08-15
  • 打赏
  • 举报
回复
好文章,收藏
vga 2003-08-15
  • 打赏
  • 举报
回复
在我这,rave 报表导出-> .doc 时汉字也是乱码
做工资表时,零值如何不打印呀(如 0 或 0.00 不打印出)?
vga 2003-08-13
  • 打赏
  • 举报
回复
楼主太好了!!!
jimeigang 2003-08-10
  • 打赏
  • 举报
回复
我剛學用Rave做報表,不知道如何設定要打印的報表的高度,我要做的報表高度只要5厘米,可是打印機確打印了一張紙.
RamjetZhang 2003-08-06
  • 打赏
  • 举报
回复
补充一点,rave启动时候是用findwindow找TAppBuilder的classname的,所以想要脱离delphi开发环境使用rave的开发工具,自己写个classname为TAppBuilder的程序就是了。
hare007 2003-08-06
  • 打赏
  • 举报
回复
我做好了的报表都已*.rav的格式放在硬盘上,能把他们都放到一个dll或者其他的文件里供主程序调用么,我不希望很多的*.rav胡乱的堆在外面。如果能,怎么放入,怎么写接口。各位大虾来出谋划策啊!!!
加载更多回复(94)

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧