关于quickrep 打印予览汉化问题各位有什么高招?(50分)

  • 主题发起人 主题发起人 ygh2008
  • 开始时间 开始时间
Y

ygh2008

Unregistered / Unconfirmed
GUEST, unregistred user!
关于quickrep 打印予览汉化问题,想得一个操作简单,行之有效的办法。各位有什么高招?
 
没明白你的意思,如果不想用自带的Preview,自己做一个Preview窗口,放上自定义的按钮不就行了。
 
我听说有办法把它自带的Preview的按钮show的说明文字给汉化,这不是比自己做一个Preview窗口,放上自定义的按钮简单嘛
 
ygh2008说的对
我就试过,在delphi目录下找到一个名称好象是Quickrep.pas文件,用delphi打开,然后就可以把他的各个按钮的英文换成中文了。
Easy!
 
自己做一个预览窗口的优点是,你可以用自己的按钮,按钮可以设计的很漂亮,预览的背景色可以调成自己喜欢的颜色,另外,你还可以设置自己的提示信息,如果只想让预览不想让打印可以不设打印按钮,可以按自己设定的比例进行预览等,这带来的效果提升比汉化HINT要好得多。而实现起来又非常简单,何乐而不为呢?
 
直接修改quickrep的源码就行了
 
to LEEMA:真的很简单嘛?我想象中很难,这个予览窗体在什么事件中show?调用preview方法时自带的窗体不就出来了?怎么出自定义的?
to xiaoln01:直接改了就能用吗?不用重新编译?
 
~!@#$$$%%^&*
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, QuickRpt, ExtCtrls, QRPrev;
type
TForm1 = class(TForm)
QuickRep1: TQuickRep;
TitleBand1: TQRBand;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure FormColorControl(Sender: TObject);
end;

var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormColorControl(Sender: TObject);
var
i, mycount: integer;
begin

if Screen.ActiveForm = nil then
exit;

// QRPrev
if Screen.ActiveForm is TQRStandardPreview then
begin
with TQRStandardPreview(Screen.ActiveForm)do
begin
Caption := self.Caption + ' —— 打印预览';
ExitButton.Caption := '退出';
FirstPage.Hint := '第一页';
PreviousPage.Hint := '上一页';
ToolButton2.Hint := '下一页';
LastPage.Hint := '最后一页';
PrintSetup.Hint := '设置打印机';
Print.Hint := '打印';
SaveReport.hint := '保存报告';
LoadReport.hint := '读取报告';
end;
end;


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.OnActiveFormChange:=FormColorControl;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
QuickRep1.Preview;
end;

end.

 
object Form1: TForm1
Left = 192
Top = 107
Width = 544
Height = 375
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Scaled = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object QuickRep1: TQuickRep
Left = 248
Top = 120
Width = 794
Height = 1123
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Arial'
Font.Style = []
Functions.Strings = (
'PAGENUMBER'
'COLUMNNUMBER'
'REPORTTITLE')
Functions.DATA = (
'0'
'0'
'''''')
Options = [FirstPageHeader, LastPageFooter]
Page.Columns = 1
Page.Orientation = poPortrait
Page.PaperSize = A4
Page.Values = (
100
2970
100
2100
100
100
0)
PrinterSettings.Copies = 1
PrinterSettings.Duplex = False
PrinterSettings.FirstPage = 0
PrinterSettings.LastPage = 0
PrinterSettings.OutputBin = Auto
PrintIfEmpty = True
SnapToGrid = True
Units = MM
Zoom = 100
object TitleBand1: TQRBand
Left = 38
Top = 38
Width = 718
Height = 40
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
AlignToBottom = False
Color = clWhite
ForceNewColumn = False
ForceNewPage = False
Size.Values = (
105.833333333333
1899.70833333333)
BandType = rbTitle
end
end
object Button1: TButton
Left = 184
Top = 216
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 1
OnClick = Button1Click
end
end
对整个工程有效。
//主窗体
procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.OnActiveFormChange:=FormColorControl;
end;
 
我很菜,问些弱智问题。请问 LEEMA: TRxCalcEdit 在哪里呀,我怎么没看到过?
还有“ 调用:
在REPORT的OnPreview中写上:
PreviewForm.QRPreview1.QRPrinter := TQRPrinter(Sender);
PreviewForm.CurRep := Report;
想PREVIEW时:
MyReport.Preview;即可” 中的
“REPORT”指的是什么?是QRPreview1吗?
“MyReport”指的是什么?之前没有声明呀
 
ask to hfghfghfg:运行时出现
[Error] Unit1.pas(41): Undeclared identifier: 'TQRStandardPreview'
怎么回事?
 
在你的D7安装目录下有一个目录:quickrpt,找到qrpev.pas 和 qrpev.frm两个文件。
建立一个简单的工程文件,包含它们。然后你就可以“汉化”处理了(按钮文字、提示信息等等...)。然后将编译生成的后的qrpev.dcu文件放到D7/lib目录下就可以了(覆盖原来的qrpev.dcu文件)。就是这么简单,祝你顺利!
 
To ygh2008:
/////////////////////////////////////
我很菜,问些弱智问题。请问 LEEMA: TRxCalcEdit 在哪里呀,我怎么没看到过?
还有“ 调用:
在REPORT的OnPreview中写上:
PreviewForm.QRPreview1.QRPrinter := TQRPrinter(Sender);
PreviewForm.CurRep := Report;
想PREVIEW时:
MyReport.Preview;即可” 中的
“REPORT”指的是什么?是QRPreview1吗?
“MyReport”指的是什么?之前没有声明呀
////////////////////////////////////////////////
1、TRxCalcEdit是我用的一个RxLib275中的一个控件,你可以用一个Edit控件代替,只要求输入数字。
2、QRPreview1就是你放的Preview控件,在QReport项目中。
3、REPORT,MyReport指的就是你要打印预览的报表啊。如果你的报表名字叫:Reporp, 那就在Report的OnPreview事件中写上述代码,预览时执行Report.Preview即可。
 
to yuanshanli:
我安装的是Delphi 6,没有找到qrpev.pas 和 qrpev.frm两个文件
是不是只有Delphi 7 中才能这样汉化?
 
yuanshanli说的对啊
不过是Qrprev.dfm这个这个文件,大概他拼写错了。直接用Delphi编辑就行了,Delphi6、Delphi7都行,就是把那些caption换成中文。
 
Qrprev.dfm在C:/Program Files/Borland/Delphi6/Lib目录下,这是我的安装目录,你自己的可以参照,用DELPHI打开,将其中的按钮标题,FORM标题,提示等等改为中文,保存.再从新编译你的程序,运行打开预览窗口,预览窗口的英文标题就变成中文了.
 
谢谢各位了,不过小弟积数有限
 

Similar threads

后退
顶部