How can I preview a rave report on a Delphi form? I have a page control with 2 pages: on the first one the user enter some data (name, address...) and I want on the second page to preview the report generated with the data from the first page.
Delphi - preview a Rave report on the form
原标题:Delphi - preview a Rave report on the form
最佳回答
您可以向任何STScrollBox提供预览,同时进行技术审查:
有了TyvSystem:
RvRenderPreview1.ScrollBox := ScrollBox1; // a scrollbox on a TTabSheet
RvSystem1.DefaultDest := rdFile;
RvSystem1.SystemSetups := RvSystem1.SystemSetups - [ssAllowSetup];
RvSystem1.RenderObject := RvRenderPreview1;
RvSystem1.DoNativeOutput := false;
RvSystem1.Execute;
问题回答
你们可以使用TvNDRWriter部分而不是TvSystem。
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;
我使用了印刷版的预盘,但并不完全相同,但在我的申请中,这已经足够了。 我不知道这是否有可能植根于页面控制。
利用TRIV项目 + 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:ExecutaveisGeradosExemplossampleRavesampleRave.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;
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding