读书人

Rave Report 自定义预览解决方案

发布时间: 2013-01-06 15:44:47 作者: rapoo

Rave Report 自定义预览
我想自定义预览,网上有如下代码:


如何自已做预览窗口
创建一个窗口,在上面放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;


问题:1.Rave Design 生成的是 '*.rav'文件, 何来‘*.ndr’?
2.ShowButton()什么的干活,无效啊
[解决办法]
1.ndr 自动生成
2.一定要TRvDataSetConnection
3.正确代码:


NDRStream:=TMemoryStream.Create ;

DataModule2.RvProject1.Engine := RvNDRWriter1;
DataModule2.RvProject1.Open;
DataModule2.RvProject1.SelectReport('Report1',true);
With DataModule2.RvProject1.ProjMan do
begin
MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage;
MyBitMap := FindRaveComponent('Bitmap1',MyPage) as TRaveBitmap;
MyBitMap.Image.LoadFromFile('1.bmp');
end;
RvNDRWriter1.FileName:='Report1.ndr';
RvNDRWriter1.StreamMode:=smfile;
DataModule2.RvProject1.Execute;

NDRStream.LoadFromFile('Report1.ndr');

RvRenderPreview1.Render(NDRStream);

读书人网 >.NET

热点推荐