procedure TFBaseReport.fitnice;
var
i: Integer;
begin
for i := Screen.FormCount - 1 downto 0 do
begin
with Screen.Forms[i] do
begin
if ClassName = 'TQRStandardPreview' then
begin
if qkReport.Page.Orientation = poPortrait then
begin
TQRStandardPreview(TComponent(Screen.Forms[i])).Zoom100.Down := true;
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomToWidth.Down := false;
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomFit.Down := false;
TQRStandardPreview(TComponent(Screen.Forms[i])).Zoom100.Click;
end else
begin
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomFit.Down := true;
TQRStandardPreview(TComponent(Screen.Forms[i])).Zoom100.Down := false;
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomToWidth.Down := false;
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomFit.Click;
end;
end;
end;
end;
end;procedure TFBaseReport.qkReportEndPage(Sender: TCustomQuickRep);
begin
fitnice;
end;
我查了几个国外网站都说要改QReport的源代码或者自己做Preview难道真的没有别的办法了吗?
var
i: Integer;
begin
for i := Screen.FormCount - 1 downto 0 do
begin
with Screen.Forms[i] do
begin
if ClassName = 'TQRStandardPreview' then
begin
if qkReport.Page.Orientation = poPortrait then
begin
TQRStandardPreview(TComponent(Screen.Forms[i])).Zoom100.Down := true;
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomToWidth.Down := false;
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomFit.Down := false;
TQRStandardPreview(TComponent(Screen.Forms[i])).Zoom100.Click;
end else
begin
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomFit.Down := true;
TQRStandardPreview(TComponent(Screen.Forms[i])).Zoom100.Down := false;
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomToWidth.Down := false;
TQRStandardPreview(TComponent(Screen.Forms[i])).ZoomFit.Click;
end;
end;
end;
end;
end;procedure TFBaseReport.qkReportEndPage(Sender: TCustomQuickRep);
begin
fitnice;
end;
我查了几个国外网站都说要改QReport的源代码或者自己做Preview难道真的没有别的办法了吗?
type TMyPreviewInterface = class(TQRStandardPreviewInterface)
public
procedure OnPageAvailable(Sender: TObject;pageno:integer);
function Show(AQRPrinter : TQRPrinter) : TWinControl; override;
function ShowModal(AQRPrinter : TQRPrinter): TWinControl; override;
end;
procedure TMyPreviewInterface.OnPageAvailable(Sender: TObject;pageno:integer);
begin
TQrPreView(Sender).Zoom:=100;
end;function TMyPreviewInterface.Show(AQRPrinter: TQRPrinter): TWinControl;
begin
result:=TQRStandardPreview(inherited Show(AQRPrinter));
TQRStandardPreview(result).Zoom100.Down:=true;
TQRStandardPreview(result).QRPreview.OnPageAvailable:=OnPageAvailable;
end;function TMyPreviewInterface.ShowModal(
AQRPrinter: TQRPrinter): TWinControl;
begin
result:=TQRStandardPreview(inherited ShowModal(AQRPrinter));
TQRStandardPreview(result).Zoom100.Down:=true;
TQRStandardPreview(result).QRPreview.OnPageAvailable:=OnPageAvailable;
end;
你显示preview,这样:procedure TForm1.Button1Click(Sender: TObject);
begin
RegisterPreviewClass(TMyPreviewInterface); //这一行要加
QuickRep1.Preview;
end;