如何在 Delphi 表单上预览 rave 报告?我有一个包含 2 个页面的页面控件:在第一个页面上,用户输入一些数据(姓名、地址……),我希望在第二个页面上预览使用第一页的数据生成的报告。
问问题
4563 次
4 回答
2
您可以使用 TRvRenderPreview 向任何 TScrollBox 呈现预览:
使用 TRvSystem:
RvRenderPreview1.ScrollBox := ScrollBox1; // a scrollbox on a TTabSheet
RvSystem1.DefaultDest := rdFile;
RvSystem1.SystemSetups := RvSystem1.SystemSetups - [ssAllowSetup];
RvSystem1.RenderObject := RvRenderPreview1;
RvSystem1.DoNativeOutput := false;
RvSystem1.Execute;
于 2009-10-23T12:47:45.687 回答
2
您可以使用 TRvNDRWriter 组件代替 TRvSystem。
procedure TForm1.Button1Click(Sender: TObject);
begin
RvProject1.Execute;
RvRenderPreview1.Render;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
ms: TMemoryStream;
begin
// RvNDRWriter1.StreamMode := smUser;
// RvRenderPreview1.ScrollBox := ScrollBox1;
ms := TMemoryStream.Create;
RvNDRWriter1.Stream := ms;
RvRenderPreview1.NDRStream := ms;
end;
于 2009-10-23T14:59:38.277 回答
0
我使用了打印预览,它并不完全相同,但在我的应用程序中就足够了。我不知道是否可以嵌入页面控件。
于 2009-10-23T10:34:58.137 回答
0
使用 TRvProject + TRvNDRWriter + TRvRenderPreview + TMemoryStream + TScrollBox
procedure TForm1.FormCreate(Sender: TObject);
begin
FNdrStream := TMemoryStream.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FNdrStream.Free;
end;
procedure TForm1.btnPreviewClick(Sender: TObject);
begin
//load report project file. You can use stored RAV instead
rvProject.ProjectFile := 'C:\ExecutaveisGerados\Exemplos\sampleRave\sampleRave.rav';
rvProject.Open;
//tells rave we will write the report result to a NDR
rvProject.Engine := rvNdrWriter;
//ensure empty memory stream
FNdrStream.Clear;
//tells NDRWriter where to store ndr file (memory stream)
rvNdrWriter.StreamMode := smUser;
rvNdrWriter.Stream := FNdrStream;
//execute the report using the NDRWriter. Now the Stream holds the NDR file
rvProject.Execute;
//tells RenderPreview where to display
rvRenderPreview.ScrollBox := sbReportPreview;
//display NDR file from memory stream
rvRenderPreview.Render(FNdrStream);
end;
于 2019-01-17T12:20:18.920 回答