zt:如何显示中文化的打印预览对话框

转载 2004年07月14日 16:05:00

如何显示中文化的打印预览对话框

      拷贝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版本升级的影响!

 

------------------------------------------------------------------------------------------

参考资料一

 

This is the recommended method for those that have Rave Reports source code (BEX customers). This method shows how to override the built-in preview system. This approach is more flexible and therefore, more desirable. In simple terms, you copy the existing preview source (RpFormPreview) to a different name (say MyPreview). Then you use the RpSystem source to see how the OverridePreviewProc is structured and copy appropriate parts to your RvSystem component overridepreview event. Now here are the steps.

PART 1

1. Copy RpFormPreview.PAS and RpFormPreview.DFM to new files, let's call them MyPreview.PAS and MyPreview.DFM.

2. Open MyPreview.PAS inside Delphi (preferably with your project already open) and rename the unit heading to MyPreview.

3. Rename the form associated with MyPreview.PAS to MyPreviewForm in the Object Inspector.

4. Add the unit MyPreview to your project using the project manager.

PART 2

5. Open the file RPSYSTEM.PAS from the source subdirectory and go to the procedure OverridePreviewProc. This block of code will be used in the next step.

6. Go to one of your ReportSystem components and open event tab. Then create (double-click) on the OverridePreview event. In OverridePreview code area copy the corresponding code from the RPSYSTEM.PAS OverridePreviewProc block of code.

7. Replace all occurrences of TRPPreviewForm (standard preview) with TMyPreviewForm (your custom preview) throughout the new OverridePreview procedure.

8. Make some simple change to your MyPreview source. For example, change the caption to read "New Custom Preview".

9. Recompile your project using Build All.

Run your program and generate a report that uses the modified ReportSystem component. If you see your "New Custom Preview", then you are well on your way. Now, you can modify your custom preview form as you wish.

zt:如何显示中文化的打印设置对话框?

如何显示中文化的打印设置对话框?       拷贝C:/Rave5/Source目录中的RpFormSetup.pas和RpFormSetup.dfm到对应的项目目录中。       把RpFormS...
  • foreveryday007
  • foreveryday007
  • 2004年07月14日 16:04
  • 1470

MFC在对话框中实现打印预览

在一般的软件开发中打印和打印预览是经常要用到的功能,对于VC6.0中的文档/视图(Doc/View)框架,可以很方便的使用缺省的打印和打印预览。但是,如果应用程序是基于对话框的就没有办法利用这种便利。...
  • lurenmei
  • lurenmei
  • 2012年11月21日 11:34
  • 1343

VC++对话框程序打印及打印预览的实现(一)

张明奇(卡哥)注释:成功版本         MFC文档/视图的应用程序,向导给了打印及打印预览的标准支持。使这类应用程序打印及打印预览工作得以简化。另一类对话框程序却没有相应支持,从MFC打印及打...
  • L_Andy
  • L_Andy
  • 2012年10月15日 09:47
  • 3225

VC++对话框程序打印及打印预览的实现

原文来自:V​C​+​+​对​话​框​程​序​打​印​及​打​印​预​览​的​实​现...
  • Joy58061678
  • Joy58061678
  • 2014年08月07日 10:12
  • 2877

VC++对话框程序打印及打印预览的实现(二)

这是接上面的具体实现能够成功的打印出数据 CPrintView.h的详细代码 #pragma once #include "StatisticsCoverDlg.h" // CPrintVie...
  • L_Andy
  • L_Andy
  • 2012年10月22日 17:32
  • 3929

VC++对话框程序打印及打印预览的实现(三)

本文首先介绍了利用MFC提供的文档视图框架来实现一个打印程序,实现打印预览,在此基础上,同时通过对MFC源代码的深入探讨,提出了利用该方法在对话框上用MFC实现打印功能,结果表明,利用MFC实现打印不...
  • L_Andy
  • L_Andy
  • 2012年10月22日 17:38
  • 2465

MFC中如何实现对话框的打印

我现在想要对一个对话框实施打印,但是只能打印对话框的一部分,请问如何修改下面程序 CRect m_rect; //获取图像的大小 MyStatic.GetClientRect(m_rect); ...
  • langbochi1386
  • langbochi1386
  • 2017年01月19日 03:09
  • 170

[tips] 在MFC中快速预览对话框布局的快捷键

之前在MFC中查看对话框布局,都跑一遍程序,很麻烦,今天偶然发现有快捷键可以直接预览对话框。 以后再改布局,So Easy! 快捷键:Ctrl + T...
  • cyh706510441
  • cyh706510441
  • 2015年01月13日 21:51
  • 1075

vc++解决单文档打印程序中打印预览与打印大小不等问题

在VC++6.0中用应用程序向导(AppWizard)生成的单文档或多文档程序提供了对打印功能的实现,但遗憾的是如果对自动生成的框架程序不做任何改进,打印出来的文档或图形和屏幕上的显示相比就会特别小。...
  • Augusdi
  • Augusdi
  • 2010年06月28日 17:49
  • 1993

pb打印:PB中打印预览的实现

转载自计算机世界日报 (文/刘荣芳)    作为目前比较流行的数据库前端开发工具 PowerBuilder显着的一个特点就是其数据窗口(DataWindow)技术,利用此技术可生成各种复杂 报表,但在...
  • lidengzhi0000
  • lidengzhi0000
  • 2009年04月25日 16:45
  • 4564
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zt:如何显示中文化的打印预览对话框
举报原因:
原因补充:

(最多只允许输入30个字)