Rave Reports - 如何查找用户在设置过程中选择的文件格式?

发布于 2024-08-06 04:35:59 字数 505 浏览 7 评论 0原文

我正在使用 Delphi 7。我使用 Rave 实现了报告机制。还可以导出为 HTML、PDF 和 TXT。 但存在一个问题:当用户直接将报告保存到文件中(没有先预览)时,Rave 不会将文件扩展名添加到文件名中。因此创建的文件看起来像 Report(而不是 Report.pdf),并且用户需要指定应用程序来手动查看此报告。为了解决这个问题,我在 RvSystem1 BeforeRrint 事件中编写了以下代码:

procedure TRepAllForm.RvSystem1BeforePrint(Sender: TObject);
begin
     if RvSystem1.ReportDest=rdFile then
        RVSystem1.OutputFileName:=RVSystem1.OutputFileName+'.pdf';
End;

但问题是如果用户选择不同的格式怎么办?有谁知道如何识别用户选择的渲染?即 HTML、PDF 或 TXT?

谢谢你, 托菲格·哈萨诺夫

I am using Delphi 7. I have the reporting mechanism implemented using Rave. Also exporting to HTML, PDF and TXT is used.
There is a problem though: When user saves report into file directly (without previewing it first), file extension is not added to the filename by Rave. So the file created looks like Report (instead of Report.pdf) and user needs to specify application to view this report manualy. In order to solve this problem I wrote the following code to RvSystem1 BeforeRrint event:

procedure TRepAllForm.RvSystem1BeforePrint(Sender: TObject);
begin
     if RvSystem1.ReportDest=rdFile then
        RVSystem1.OutputFileName:=RVSystem1.OutputFileName+'.pdf';
End;

But the problem is what if user selects different format? Does anybody know how to identify which rendering user selects? i.e. HTML, PDF or TXT?

Thank you,
Tofig Hasanov

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

杀手六號 2024-08-13 04:35:59

似乎我自己找到了解决方案)我使用了 RVSystem 的 RenderObject 属性。
代码如下:

procedure TRepAllForm.RvSystem1BeforePrint(Sender: TObject);

开始

 if RvSystem1.ReportDest=rdFile then
 Begin
     if RVSystem1.RenderObject=RvRenderPDF1 then
      RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.pdf'
     else if RvSystem1.RenderObject=RvRenderHTML1 then
      RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.html'
     else if RvSystem1.RenderObject=RvRenderText1 then
      RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.txt';

 End;

结束;

Seems that I have found solution myself ) I used RenderObject property of RVSystem.
Here is the code:

procedure TRepAllForm.RvSystem1BeforePrint(Sender: TObject);

begin

 if RvSystem1.ReportDest=rdFile then
 Begin
     if RVSystem1.RenderObject=RvRenderPDF1 then
      RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.pdf'
     else if RvSystem1.RenderObject=RvRenderHTML1 then
      RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.html'
     else if RvSystem1.RenderObject=RvRenderText1 then
      RvSystem1.OutputFileName:=RvSystem1.OutputFileName+'.txt';

 End;

end;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文