Delphi 7 中使用RAVE报表(七)
来源:互联网 发布:毒品网络 下载 magnet 编辑:程序博客网 时间:2024/05/17 09:15
Delphi 7 中使用RAVE报表(七)
---- 一些技巧
作为《Delphi 7 中使用RAVE报表》的最后,整理一些技巧给大家。
1.设计好的Rave报表文件如何打包到EXE文件中?
在Rvproject的属性中有一个StoreRav,只要load对应的rav文件即可!
同时最好把对应rvproject的ProjectFile属性清空。
2.如何显示中文化的打印预览对话框?
拷贝C:/Rave5/Source目录中的RpFormPreview.pas和RpFormPreview.dfm到对应的项
目目录中。
把RpFormPreview.pas加入到对应的项目文件中,把对应窗体的名字从
RavePreviewForm更改为SCRavePreviewForm;将文件RpFormPreview.pas另存为
SCFormPreview.pas。
把窗体SCRavePreviewForm中的对应文字从英文更改为中文。
在主窗体上加上 RvProject和 RvSystem部件,通过设定RvProject.Engine为
RvSystem部件来把两者挂接。
设置RvSystem部件的OverridePreview事件过程为以下代码:
procedure TForm1.RvSystem1OverridePreview(ReportSystem: TRvSystem;
OverrideMode: TOverrideMode; var OverrideForm: TForm);
begin
Case OverrideMode Of
omCreate:
Begin
OverrideForm := TSCRavePreviewForm.Create(self);
//OverrideForm.Caption := ReportSystem.TitlePreview;
OverrideForm.Width := ReportSystem.SystemPreview.FormWidth;
OverrideForm.Height := ReportSystem.SystemPreview.FormHeight;
OverrideForm.WindowState := ReportSystem.SystemPreview.FormState;
(OverrideForm As TSCRavePreviewForm).ReportSystem := ReportSystem;
End;
omShow:
Begin
ReportSystem.SystemPreview.InitPreview((OverrideForm As
TSCRavePreviewForm).RvRenderPreview);
If Assigned(ReportSystem.OnPreviewSetup) Then
Begin
ReportSystem.OnPreviewSetup((OverrideForm As
TSCRavePreviewForm).RvRenderPreview);
End; { if }
(OverrideForm As TSCRavePreviewForm).InputFileName :=
ReportSystem.SystemFiler.Filename;
(OverrideForm As TSCRavePreviewForm).InputStream :=
ReportSystem.SystemFiler.Stream;
(OverrideForm As TSCRavePreviewForm).InitFromRPSystem;
(* *)
If soPreviewModal In ReportSystem.SystemOptions Then
Begin
OverrideForm.ShowModal;
End
Else
Begin
OverrideForm.Show;
End; { else }
End;
omWait:
Begin
If Not (soPreviewModal In ReportSystem.SystemOptions) Then
Begin
// Wait for close
Repeat
Sleep(250);
Application.ProcessMessages;
Until Not OverrideForm.Visible;
End; { if }
End;
omFree:
Begin
If (ReportSystem.SystemFiler.StreamMode In [smTempFile, smFile]) Then
Begin
(OverrideForm As TSCRavePreviewForm).RvRenderPreview.NDRStream.Free;
(OverrideForm As TSCRavePreviewForm).RvRenderPreview.NDRStream :=
Nil;
End; { if }
FreeAndNil(OverrideForm);
End;
End; { case }
end;
编译运行这个项目,其打印预览窗口就会变成中文的了。
备注:这种方式进行中文化不会受到RAVE版本升级的影响。
3.如何显示中文化的打印设置对话框?
拷贝C:/Rave5/Source目录中的RpFormSetup.pas和RpFormSetup.dfm到对应的项目目
录中。
把RpFormSetup.pas加入到对应的项目文件中,把对应窗体的名字从RPSetupForm更改
为SCSetupForm;将文件RpFormSetup.pas另存为SCFormSetup.pas。
把窗体SCSetupForm中的对应文字从英文更改为中文。
在主窗体上加上 RvProject和 RvSystem部件,通过设定RvProject.Engine为
RvSystem部件来把两者挂接。
设置RvSystem部件的OverrideSetup事件过程为以下代码:
procedure TForm1.RvSystem1OverrideSetup(ReportSystem: TRvSystem;
OverrideMode: TOverrideMode; var OverrideForm: TForm);
begin
case
OverrideMode of
omCreate:
begin
OverrideForm := TSCSetupForm.Create(nil);
//OverrideForm.Caption := RvSystem1.TitleSetup;
(OverrideForm as TSCSetupForm).ReportSystem := ReportSystem;
end;
omShow:
begin
with OverrideForm as TSCSetupForm, ReportSystem do
begin
PreviewSetup := False;
Aborted := ShowModal = mrCancel;
end;
end;
omWait:
begin
{because showModal: no wait necessary!}
end;
omFree:
begin
OverrideForm.Free;
end;
end;
end;
编译运行这个项目,其打印设置对话框就会变成中文的了!
这种方式进行中文化不会受到RAVE版本升级的影响!
对于其它对话框应该可以同法炮制吧!
4.如何自已做预览窗口?
创建一个窗口,在上面放RvProject组件、RvNDRWriter组件、RvRenderPreview组件和ScrollBox组件,设定以下几个部件间的联系关系:
RvProject.Engine:=RvNDRWriter;
RvRenderPreview.ScrollBox:=ScrollBox;
设定RvNDRWriter.filename为 demo.ndr ;
进行预览的代码为:
var
NDRStream:TMemoryStream;
begin
//建立内存流
NDRStream:=TMemoryStream.Create
//输出报表数据
RvProject1.Execute
//将报表数据调入内存流中供预览
NDRStream.LoadFromFile('demo.ndr');
//预览相应的报表,使用的是相应的内存流。
RvRenderPreview1.Render(NDRStream);
ShowButton();
end;
要想在你的项目中很好的应用RAVE做好报表,更多的内容参考/Rave5/Docs/下的RAVE手册。
- Delphi 7 中使用RAVE报表(七)
- Delphi 7 中使用RAVE报表(一)
- Delphi 7 中使用RAVE报表(二)
- Delphi 7 中使用RAVE报表(三)
- Delphi 7 中使用RAVE报表(四)
- Delphi 7 中使用RAVE报表(五)
- Delphi 7 中使用RAVE报表(六)
- DELPHI版块RAVE报表上解决的问题(zz)
- Delphi报表设计之Rave介绍
- Delphi报表设计之Rave组件
- DELPHI7中窗体中使用rave报表的一个小问题
- delphi报表设计之Rave的高级特性
- Rave 报表入门
- 在Delphi 中如何使用水晶报表
- Rave使用体会(22):Rave中连接ADO数据库的例子
- Delphi 报表 Quickreport使用
- 在报表中打印固定行(不足时补充空行)----使用fastreport 4.6 和 Delphi 7
- rave report设置不同报表的打印机
- 数据库中的正则表达试
- Trick:Incoming call notification(Symbian)
- Linux下glibc 2安装--建立交叉连接器(二)
- 下一个网络首富:为什么不能是你?(转)
- Spring AOP之ThrowsAdvice
- Delphi 7 中使用RAVE报表(七)
- 实现窗口从实变透明到消失这是一个例子
- 以后我每天都更新代理!!!
- An excellent book for design patterns beginners
- 神奇的中文:老婆的40个同义词
- cygwin汉化
- 首日代理,喵喵
- 在Linux下安装和使用Mysql
- (转) 下一个网络首富: 为什么不能是你?