unit RptFrm;interfaceuses
SysUtils, Classes, Controls, NrmlFrm, QRPrntr, ActnList, ImgList, ComCtrls,
ToolWin, Forms, StdCtrls, Spin, Dialogs;type
TReportForm = class(TForm)
qrpPreview: TQRPreview;
tlbtnZoomToFit: TToolButton;
tlbtnActualSize: TToolButton;
tlbtnZoomToWidth: TToolButton;
tlbtnSprt1: TToolButton;
tlbtnFirst: TToolButton;
tlbtnPrior: TToolButton;
tlbtnNext: TToolButton;
tlbtnLast: TToolButton;
tlbtnSprt2: TToolButton;
tlbtnPrintSetup: TToolButton;
tlbtnPrint: TToolButton;
tlbtnSprt3: TToolButton;
tlbtnOpen: TToolButton;
tlbtnSave: TToolButton;
tlbtnSprt4: TToolButton;
tlbtnExit: TToolButton;
spePage: TSpinEdit;
lblZoom: TLabel;
speZoom: TSpinEdit;
lblPage: TLabel;
actZoomToFit: TAction;
actActualSize: TAction;
actZoomToWidth: TAction;
actFirst: TAction;
actPrior: TAction;
actNext: TAction;
actLast: TAction;
actPrintSetup: TAction;
actPrint: TAction;
actOpen: TAction;
actExit: TAction;
stbStatus: TStatusBar;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
actRptSave: TAction;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure actExitExecute(Sender: TObject);
procedure actZoomToFitExecute(Sender: TObject);
procedure actActualSizeExecute(Sender: TObject);
procedure actZoomToWidthExecute(Sender: TObject);
procedure speZoomChange(Sender: TObject);
procedure actFirstExecute(Sender: TObject);
procedure actPriorExecute(Sender: TObject);
procedure actLastExecute(Sender: TObject);
procedure actFirstUpdate(Sender: TObject);
procedure actNextUpdate(Sender: TObject);
procedure spePageChange(Sender: TObject);
procedure qrpPreviewPageAvailable(Sender: TObject; PageNum: Integer);
procedure actPrintExecute(Sender: TObject);
procedure actPrintSetupExecute(Sender: TObject);
procedure actOpenExecute(Sender: TObject);
procedure actRptSaveExecute(Sender: TObject);
procedure actCloseExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FPageCount: Integer; function GetQRPrinter: TQRPrinter;
procedure SetQRPrinter(const Value: TQRPrinter);
procedure EnableActions(const AEnabled: Boolean);
public
{ Public declarations }
property QRPrinter: TQRPrinter read GetQRPrinter write SetQRPrinter; procedure Back;
end;implementationuses StdTypes, CtrlFrm;{$R *.DFM}{ TReportForm }function TReportForm.GetQRPrinter: TQRPrinter;
begin
Result := qrpPreview.QRPrinter
end;procedure TReportForm.SetQRPrinter(const Value: TQRPrinter);
begin
qrpPreview.QRPrinter := Value
end;procedure TReportForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
QRPrinter := nil; inherited;
end;procedure TReportForm.Back;
begin
QRPrinter := nil;
NextPage := PrevPage;
ChangePage
end;procedure TReportForm.actExitExecute(Sender: TObject);
begin
inherited; Back
end;procedure TReportForm.actZoomToFitExecute(Sender: TObject);
begin
inherited; qrpPreview.ZoomToFit;
speZoom.Value := qrpPreview.Zoom;
(Sender as TAction).Checked := True
end;procedure TReportForm.actActualSizeExecute(Sender: TObject);
begin
inherited; speZoom.Value := 100;
(Sender as TAction).Checked := True
end;procedure TReportForm.actZoomToWidthExecute(Sender: TObject);
begin
inherited; qrpPreview.ZoomToWidth;
speZoom.Value := qrpPreview.Zoom;
actZoomToWidth.Checked := True
end;procedure TReportForm.speZoomChange(Sender: TObject);
begin
inherited; qrpPreview.Zoom := speZoom.Value
end;procedure TReportForm.actFirstExecute(Sender: TObject);
begin
inherited; spePage.Value := 1;
end;procedure TReportForm.actPriorExecute(Sender: TObject);
begin
inherited; with Sender as TAction do
spePage.Value := qrpPreview.PageNumber + Tag
end;procedure TReportForm.actLastExecute(Sender: TObject);
begin
inherited; spePage.Value := FPageCount
end;procedure TReportForm.actFirstUpdate(Sender: TObject);
begin
inherited; with spePage do
(Sender as TAction).Enabled := qrpPreview.PageNumber > MinValue;
spePage.Enabled := spePage.MaxValue > spePage.MinValue;
end;procedure TReportForm.actNextUpdate(Sender: TObject);
begin
inherited; with spePage do
(Sender as TAction).Enabled := qrpPreview.PageNumber < MaxValue
end;procedure TReportForm.spePageChange(Sender: TObject);
begin
inherited; if (spePage.Value >= spePage.MinValue) and
(spePage.Value <= spePage.MaxValue) then begin
qrpPreview.PageNumber := spePage.Value;
stbStatus.Panels[1].Text := Format('%d-%d',
[qrpPreview.PageNumber, FPageCount]);
end
end;procedure TReportForm.qrpPreviewPageAvailable(Sender: TObject;
PageNum: Integer);
var
FText: string;
begin
inherited; // yjc Add This 2000.07.20 22:27
tlbtnZoomToWidth.Down := True;
actZoomToWidth.Execute;
FPageCount := QRPrinter.PageCount;
spePage.MaxValue := PageNum;
stbStatus.Panels[1].Text := Format('1-%d', [PageNum]); FText := QRPrinter.Title;
if FText <> EmptyStr then
FText := FText + ' - ';
case QRPrinter.Status of
mpReady: FText := FText + SQRReady;
mpBusy: begin
FText := FText + SQRBusy;
EnableActions(False)
end;
mpFinished: begin
FText := FText + SQRFinished;
spePage.Value := 1;
EnableActions(True)
end
end;
stbStatus.Panels[0].Text := FText;
end;procedure TReportForm.actPrintExecute(Sender: TObject);
begin
inherited; with Sender as TAction do begin
Enabled := False;
QRPrinter.Print;
Enabled := True
end
end;procedure TReportForm.actPrintSetupExecute(Sender: TObject);
begin
inherited; QRPrinter.PrintSetup
end;procedure TReportForm.actOpenExecute(Sender: TObject);
begin
inherited; if OpenDialog.Execute then begin
if FileExists(OpenDialog.FileName) then begin
QRPrinter.Load(OpenDialog.FileName);
qrpPreviewPageAvailable(nil, QRPrinter.PageCount);
qrpPreview.PreviewImage.PageNumber := 1;
end
end
end;procedure TReportForm.EnableActions(const AEnabled: Boolean);
var
i: Integer;
begin
for i := 0 to alActions.ActionCount - 1 do
(alActions[i] as TAction).Enabled := AEnabled;
speZoom.Enabled := AEnabled;
spePage.Enabled := AEnabled;
end;procedure TReportForm.actRptSaveExecute(Sender: TObject);
var
AExportFilter: TQRExportFilter;
begin
inherited; SaveDialog.Filter := QRExportFilterLibrary.SaveDialogFilterString;
if SaveDialog.Execute then
if SaveDialog.FilterIndex = 1 then
QRPrinter.Save(SaveDialog.FileName)
else begin
AExportFilter := TQRExportFilterLibraryEntry(
QRExportFilterLibrary.Filters[SaveDialog.FilterIndex - 2]).
ExportFilterClass.Create(SaveDialog.Filename);
try
QRPrinter.ExportToFilter(AExportFilter);
finally
AExportFilter.Free
end
end
end;procedure TReportForm.actCloseExecute(Sender: TObject);
begin
TControlForm(ParentForm).ClosingReport;
Back
end;procedure TReportForm.FormCreate(Sender: TObject);
begin
inherited; AutoBack := True
end;end.
SysUtils, Classes, Controls, NrmlFrm, QRPrntr, ActnList, ImgList, ComCtrls,
ToolWin, Forms, StdCtrls, Spin, Dialogs;type
TReportForm = class(TForm)
qrpPreview: TQRPreview;
tlbtnZoomToFit: TToolButton;
tlbtnActualSize: TToolButton;
tlbtnZoomToWidth: TToolButton;
tlbtnSprt1: TToolButton;
tlbtnFirst: TToolButton;
tlbtnPrior: TToolButton;
tlbtnNext: TToolButton;
tlbtnLast: TToolButton;
tlbtnSprt2: TToolButton;
tlbtnPrintSetup: TToolButton;
tlbtnPrint: TToolButton;
tlbtnSprt3: TToolButton;
tlbtnOpen: TToolButton;
tlbtnSave: TToolButton;
tlbtnSprt4: TToolButton;
tlbtnExit: TToolButton;
spePage: TSpinEdit;
lblZoom: TLabel;
speZoom: TSpinEdit;
lblPage: TLabel;
actZoomToFit: TAction;
actActualSize: TAction;
actZoomToWidth: TAction;
actFirst: TAction;
actPrior: TAction;
actNext: TAction;
actLast: TAction;
actPrintSetup: TAction;
actPrint: TAction;
actOpen: TAction;
actExit: TAction;
stbStatus: TStatusBar;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
actRptSave: TAction;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure actExitExecute(Sender: TObject);
procedure actZoomToFitExecute(Sender: TObject);
procedure actActualSizeExecute(Sender: TObject);
procedure actZoomToWidthExecute(Sender: TObject);
procedure speZoomChange(Sender: TObject);
procedure actFirstExecute(Sender: TObject);
procedure actPriorExecute(Sender: TObject);
procedure actLastExecute(Sender: TObject);
procedure actFirstUpdate(Sender: TObject);
procedure actNextUpdate(Sender: TObject);
procedure spePageChange(Sender: TObject);
procedure qrpPreviewPageAvailable(Sender: TObject; PageNum: Integer);
procedure actPrintExecute(Sender: TObject);
procedure actPrintSetupExecute(Sender: TObject);
procedure actOpenExecute(Sender: TObject);
procedure actRptSaveExecute(Sender: TObject);
procedure actCloseExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FPageCount: Integer; function GetQRPrinter: TQRPrinter;
procedure SetQRPrinter(const Value: TQRPrinter);
procedure EnableActions(const AEnabled: Boolean);
public
{ Public declarations }
property QRPrinter: TQRPrinter read GetQRPrinter write SetQRPrinter; procedure Back;
end;implementationuses StdTypes, CtrlFrm;{$R *.DFM}{ TReportForm }function TReportForm.GetQRPrinter: TQRPrinter;
begin
Result := qrpPreview.QRPrinter
end;procedure TReportForm.SetQRPrinter(const Value: TQRPrinter);
begin
qrpPreview.QRPrinter := Value
end;procedure TReportForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
QRPrinter := nil; inherited;
end;procedure TReportForm.Back;
begin
QRPrinter := nil;
NextPage := PrevPage;
ChangePage
end;procedure TReportForm.actExitExecute(Sender: TObject);
begin
inherited; Back
end;procedure TReportForm.actZoomToFitExecute(Sender: TObject);
begin
inherited; qrpPreview.ZoomToFit;
speZoom.Value := qrpPreview.Zoom;
(Sender as TAction).Checked := True
end;procedure TReportForm.actActualSizeExecute(Sender: TObject);
begin
inherited; speZoom.Value := 100;
(Sender as TAction).Checked := True
end;procedure TReportForm.actZoomToWidthExecute(Sender: TObject);
begin
inherited; qrpPreview.ZoomToWidth;
speZoom.Value := qrpPreview.Zoom;
actZoomToWidth.Checked := True
end;procedure TReportForm.speZoomChange(Sender: TObject);
begin
inherited; qrpPreview.Zoom := speZoom.Value
end;procedure TReportForm.actFirstExecute(Sender: TObject);
begin
inherited; spePage.Value := 1;
end;procedure TReportForm.actPriorExecute(Sender: TObject);
begin
inherited; with Sender as TAction do
spePage.Value := qrpPreview.PageNumber + Tag
end;procedure TReportForm.actLastExecute(Sender: TObject);
begin
inherited; spePage.Value := FPageCount
end;procedure TReportForm.actFirstUpdate(Sender: TObject);
begin
inherited; with spePage do
(Sender as TAction).Enabled := qrpPreview.PageNumber > MinValue;
spePage.Enabled := spePage.MaxValue > spePage.MinValue;
end;procedure TReportForm.actNextUpdate(Sender: TObject);
begin
inherited; with spePage do
(Sender as TAction).Enabled := qrpPreview.PageNumber < MaxValue
end;procedure TReportForm.spePageChange(Sender: TObject);
begin
inherited; if (spePage.Value >= spePage.MinValue) and
(spePage.Value <= spePage.MaxValue) then begin
qrpPreview.PageNumber := spePage.Value;
stbStatus.Panels[1].Text := Format('%d-%d',
[qrpPreview.PageNumber, FPageCount]);
end
end;procedure TReportForm.qrpPreviewPageAvailable(Sender: TObject;
PageNum: Integer);
var
FText: string;
begin
inherited; // yjc Add This 2000.07.20 22:27
tlbtnZoomToWidth.Down := True;
actZoomToWidth.Execute;
FPageCount := QRPrinter.PageCount;
spePage.MaxValue := PageNum;
stbStatus.Panels[1].Text := Format('1-%d', [PageNum]); FText := QRPrinter.Title;
if FText <> EmptyStr then
FText := FText + ' - ';
case QRPrinter.Status of
mpReady: FText := FText + SQRReady;
mpBusy: begin
FText := FText + SQRBusy;
EnableActions(False)
end;
mpFinished: begin
FText := FText + SQRFinished;
spePage.Value := 1;
EnableActions(True)
end
end;
stbStatus.Panels[0].Text := FText;
end;procedure TReportForm.actPrintExecute(Sender: TObject);
begin
inherited; with Sender as TAction do begin
Enabled := False;
QRPrinter.Print;
Enabled := True
end
end;procedure TReportForm.actPrintSetupExecute(Sender: TObject);
begin
inherited; QRPrinter.PrintSetup
end;procedure TReportForm.actOpenExecute(Sender: TObject);
begin
inherited; if OpenDialog.Execute then begin
if FileExists(OpenDialog.FileName) then begin
QRPrinter.Load(OpenDialog.FileName);
qrpPreviewPageAvailable(nil, QRPrinter.PageCount);
qrpPreview.PreviewImage.PageNumber := 1;
end
end
end;procedure TReportForm.EnableActions(const AEnabled: Boolean);
var
i: Integer;
begin
for i := 0 to alActions.ActionCount - 1 do
(alActions[i] as TAction).Enabled := AEnabled;
speZoom.Enabled := AEnabled;
spePage.Enabled := AEnabled;
end;procedure TReportForm.actRptSaveExecute(Sender: TObject);
var
AExportFilter: TQRExportFilter;
begin
inherited; SaveDialog.Filter := QRExportFilterLibrary.SaveDialogFilterString;
if SaveDialog.Execute then
if SaveDialog.FilterIndex = 1 then
QRPrinter.Save(SaveDialog.FileName)
else begin
AExportFilter := TQRExportFilterLibraryEntry(
QRExportFilterLibrary.Filters[SaveDialog.FilterIndex - 2]).
ExportFilterClass.Create(SaveDialog.Filename);
try
QRPrinter.ExportToFilter(AExportFilter);
finally
AExportFilter.Free
end
end
end;procedure TReportForm.actCloseExecute(Sender: TObject);
begin
TControlForm(ParentForm).ClosingReport;
Back
end;procedure TReportForm.FormCreate(Sender: TObject);
begin
inherited; AutoBack := True
end;end.
SysUtils, Classes, Controls, NrmlFrm, QRPrntr, ActnList, ImgList, ComCtrls,
ToolWin, Forms, StdCtrls, Spin, Dialogs;type
TReportForm = class(TForm)
qrpPreview: TQRPreview;
tlbtnZoomToFit: TToolButton;
tlbtnActualSize: TToolButton;
tlbtnZoomToWidth: TToolButton;
tlbtnSprt1: TToolButton;
tlbtnFirst: TToolButton;
tlbtnPrior: TToolButton;
tlbtnNext: TToolButton;
tlbtnLast: TToolButton;
tlbtnSprt2: TToolButton;
tlbtnPrintSetup: TToolButton;
tlbtnPrint: TToolButton;
tlbtnSprt3: TToolButton;
tlbtnOpen: TToolButton;
tlbtnSave: TToolButton;
tlbtnSprt4: TToolButton;
tlbtnExit: TToolButton;
spePage: TSpinEdit;
lblZoom: TLabel;
speZoom: TSpinEdit;
lblPage: TLabel;
actZoomToFit: TAction;
actActualSize: TAction;
actZoomToWidth: TAction;
actFirst: TAction;
actPrior: TAction;
actNext: TAction;
actLast: TAction;
actPrintSetup: TAction;
actPrint: TAction;
actOpen: TAction;
actExit: TAction;
stbStatus: TStatusBar;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
actRptSave: TAction;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure actExitExecute(Sender: TObject);
procedure actZoomToFitExecute(Sender: TObject);
procedure actActualSizeExecute(Sender: TObject);
procedure actZoomToWidthExecute(Sender: TObject);
procedure speZoomChange(Sender: TObject);
procedure actFirstExecute(Sender: TObject);
procedure actPriorExecute(Sender: TObject);
procedure actLastExecute(Sender: TObject);
procedure actFirstUpdate(Sender: TObject);
procedure actNextUpdate(Sender: TObject);
procedure spePageChange(Sender: TObject);
procedure qrpPreviewPageAvailable(Sender: TObject; PageNum: Integer);
procedure actPrintExecute(Sender: TObject);
procedure actPrintSetupExecute(Sender: TObject);
procedure actOpenExecute(Sender: TObject);
procedure actRptSaveExecute(Sender: TObject);
procedure actCloseExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FPageCount: Integer; function GetQRPrinter: TQRPrinter;
procedure SetQRPrinter(const Value: TQRPrinter);
procedure EnableActions(const AEnabled: Boolean);
public
{ Public declarations }
property QRPrinter: TQRPrinter read GetQRPrinter write SetQRPrinter; procedure Back;
end;implementationuses StdTypes, CtrlFrm;{$R *.DFM}{ TReportForm }function TReportForm.GetQRPrinter: TQRPrinter;
begin
Result := qrpPreview.QRPrinter
end;procedure TReportForm.SetQRPrinter(const Value: TQRPrinter);
begin
qrpPreview.QRPrinter := Value
end;procedure TReportForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
QRPrinter := nil; inherited;
end;procedure TReportForm.Back;
begin
QRPrinter := nil;
NextPage := PrevPage;
ChangePage
end;procedure TReportForm.actExitExecute(Sender: TObject);
begin
inherited; Back
end;procedure TReportForm.actZoomToFitExecute(Sender: TObject);
begin
inherited; qrpPreview.ZoomToFit;
speZoom.Value := qrpPreview.Zoom;
(Sender as TAction).Checked := True
end;procedure TReportForm.actActualSizeExecute(Sender: TObject);
begin
inherited; speZoom.Value := 100;
(Sender as TAction).Checked := True
end;procedure TReportForm.actZoomToWidthExecute(Sender: TObject);
begin
inherited; qrpPreview.ZoomToWidth;
speZoom.Value := qrpPreview.Zoom;
actZoomToWidth.Checked := True
end;procedure TReportForm.speZoomChange(Sender: TObject);
begin
inherited; qrpPreview.Zoom := speZoom.Value
end;procedure TReportForm.actFirstExecute(Sender: TObject);
begin
inherited; spePage.Value := 1;
end;procedure TReportForm.actPriorExecute(Sender: TObject);
begin
inherited; with Sender as TAction do
spePage.Value := qrpPreview.PageNumber + Tag
end;procedure TReportForm.actLastExecute(Sender: TObject);
begin
inherited; spePage.Value := FPageCount
end;procedure TReportForm.actFirstUpdate(Sender: TObject);
begin
inherited; with spePage do
(Sender as TAction).Enabled := qrpPreview.PageNumber > MinValue;
spePage.Enabled := spePage.MaxValue > spePage.MinValue;
end;procedure TReportForm.actNextUpdate(Sender: TObject);
begin
inherited; with spePage do
(Sender as TAction).Enabled := qrpPreview.PageNumber < MaxValue
end;procedure TReportForm.spePageChange(Sender: TObject);
begin
inherited; if (spePage.Value >= spePage.MinValue) and
(spePage.Value <= spePage.MaxValue) then begin
qrpPreview.PageNumber := spePage.Value;
stbStatus.Panels[1].Text := Format('%d-%d',
[qrpPreview.PageNumber, FPageCount]);
end
end;procedure TReportForm.qrpPreviewPageAvailable(Sender: TObject;
PageNum: Integer);
var
FText: string;
begin
inherited; // yjc Add This 2000.07.20 22:27
tlbtnZoomToWidth.Down := True;
actZoomToWidth.Execute;
FPageCount := QRPrinter.PageCount;
spePage.MaxValue := PageNum;
stbStatus.Panels[1].Text := Format('1-%d', [PageNum]); FText := QRPrinter.Title;
if FText <> EmptyStr then
FText := FText + ' - ';
case QRPrinter.Status of
mpReady: FText := FText + SQRReady;
mpBusy: begin
FText := FText + SQRBusy;
EnableActions(False)
end;
mpFinished: begin
FText := FText + SQRFinished;
spePage.Value := 1;
EnableActions(True)
end
end;
stbStatus.Panels[0].Text := FText;
end;procedure TReportForm.actPrintExecute(Sender: TObject);
begin
inherited; with Sender as TAction do begin
Enabled := False;
QRPrinter.Print;
Enabled := True
end
end;procedure TReportForm.actPrintSetupExecute(Sender: TObject);
begin
inherited; QRPrinter.PrintSetup
end;procedure TReportForm.actOpenExecute(Sender: TObject);
begin
inherited; if OpenDialog.Execute then begin
if FileExists(OpenDialog.FileName) then begin
QRPrinter.Load(OpenDialog.FileName);
qrpPreviewPageAvailable(nil, QRPrinter.PageCount);
qrpPreview.PreviewImage.PageNumber := 1;
end
end
end;procedure TReportForm.EnableActions(const AEnabled: Boolean);
var
i: Integer;
begin
for i := 0 to alActions.ActionCount - 1 do
(alActions[i] as TAction).Enabled := AEnabled;
speZoom.Enabled := AEnabled;
spePage.Enabled := AEnabled;
end;procedure TReportForm.actRptSaveExecute(Sender: TObject);
var
AExportFilter: TQRExportFilter;
begin
inherited; SaveDialog.Filter := QRExportFilterLibrary.SaveDialogFilterString;
if SaveDialog.Execute then
if SaveDialog.FilterIndex = 1 then
QRPrinter.Save(SaveDialog.FileName)
else begin
AExportFilter := TQRExportFilterLibraryEntry(
QRExportFilterLibrary.Filters[SaveDialog.FilterIndex - 2]).
ExportFilterClass.Create(SaveDialog.Filename);
try
QRPrinter.ExportToFilter(AExportFilter);
finally
AExportFilter.Free
end
end
end;procedure TReportForm.actCloseExecute(Sender: TObject);
begin
TControlForm(ParentForm).ClosingReport;
Back
end;procedure TReportForm.FormCreate(Sender: TObject);
begin
inherited; AutoBack := True
end;end.
SysUtils, Classes, Controls, NrmlFrm, QRPrntr, ActnList, ImgList, ComCtrls,
ToolWin, Forms, StdCtrls, Spin, Dialogs;type
TReportForm = class(TForm)
qrpPreview: TQRPreview;
tlbtnZoomToFit: TToolButton;
tlbtnActualSize: TToolButton;
tlbtnZoomToWidth: TToolButton;
tlbtnSprt1: TToolButton;
tlbtnFirst: TToolButton;
tlbtnPrior: TToolButton;
tlbtnNext: TToolButton;
tlbtnLast: TToolButton;
tlbtnSprt2: TToolButton;
tlbtnPrintSetup: TToolButton;
tlbtnPrint: TToolButton;
tlbtnSprt3: TToolButton;
tlbtnOpen: TToolButton;
tlbtnSave: TToolButton;
tlbtnSprt4: TToolButton;
tlbtnExit: TToolButton;
spePage: TSpinEdit;
lblZoom: TLabel;
speZoom: TSpinEdit;
lblPage: TLabel;
actZoomToFit: TAction;
actActualSize: TAction;
actZoomToWidth: TAction;
actFirst: TAction;
actPrior: TAction;
actNext: TAction;
actLast: TAction;
actPrintSetup: TAction;
actPrint: TAction;
actOpen: TAction;
actExit: TAction;
stbStatus: TStatusBar;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
actRptSave: TAction;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure actExitExecute(Sender: TObject);
procedure actZoomToFitExecute(Sender: TObject);
procedure actActualSizeExecute(Sender: TObject);
procedure actZoomToWidthExecute(Sender: TObject);
procedure speZoomChange(Sender: TObject);
procedure actFirstExecute(Sender: TObject);
procedure actPriorExecute(Sender: TObject);
procedure actLastExecute(Sender: TObject);
procedure actFirstUpdate(Sender: TObject);
procedure actNextUpdate(Sender: TObject);
procedure spePageChange(Sender: TObject);
procedure qrpPreviewPageAvailable(Sender: TObject; PageNum: Integer);
procedure actPrintExecute(Sender: TObject);
procedure actPrintSetupExecute(Sender: TObject);
procedure actOpenExecute(Sender: TObject);
procedure actRptSaveExecute(Sender: TObject);
procedure actCloseExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FPageCount: Integer; function GetQRPrinter: TQRPrinter;
procedure SetQRPrinter(const Value: TQRPrinter);
procedure EnableActions(const AEnabled: Boolean);
public
{ Public declarations }
property QRPrinter: TQRPrinter read GetQRPrinter write SetQRPrinter; procedure Back;
end;implementationuses StdTypes, CtrlFrm;{$R *.DFM}{ TReportForm }function TReportForm.GetQRPrinter: TQRPrinter;
begin
Result := qrpPreview.QRPrinter
end;procedure TReportForm.SetQRPrinter(const Value: TQRPrinter);
begin
qrpPreview.QRPrinter := Value
end;procedure TReportForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
QRPrinter := nil; inherited;
end;procedure TReportForm.Back;
begin
QRPrinter := nil;
// NextPage := PrevPage;
// ChangePage
end;procedure TReportForm.actExitExecute(Sender: TObject);
begin
inherited; Back
end;procedure TReportForm.actZoomToFitExecute(Sender: TObject);
begin
inherited; qrpPreview.ZoomToFit;
speZoom.Value := qrpPreview.Zoom;
(Sender as TAction).Checked := True
end;procedure TReportForm.actActualSizeExecute(Sender: TObject);
begin
inherited; speZoom.Value := 100;
(Sender as TAction).Checked := True
end;procedure TReportForm.actZoomToWidthExecute(Sender: TObject);
begin
inherited; qrpPreview.ZoomToWidth;
speZoom.Value := qrpPreview.Zoom;
actZoomToWidth.Checked := True
end;procedure TReportForm.speZoomChange(Sender: TObject);
begin
inherited; qrpPreview.Zoom := speZoom.Value
end;procedure TReportForm.actFirstExecute(Sender: TObject);
begin
inherited; spePage.Value := 1;
end;procedure TReportForm.actPriorExecute(Sender: TObject);
begin
inherited; with Sender as TAction do
spePage.Value := qrpPreview.PageNumber + Tag
end;procedure TReportForm.actLastExecute(Sender: TObject);
begin
inherited; spePage.Value := FPageCount
end;procedure TReportForm.actFirstUpdate(Sender: TObject);
begin
inherited; with spePage do
(Sender as TAction).Enabled := qrpPreview.PageNumber > MinValue;
spePage.Enabled := spePage.MaxValue > spePage.MinValue;
end;procedure TReportForm.actNextUpdate(Sender: TObject);
begin
inherited; with spePage do
(Sender as TAction).Enabled := qrpPreview.PageNumber < MaxValue
end;procedure TReportForm.spePageChange(Sender: TObject);
begin
inherited; if (spePage.Value >= spePage.MinValue) and
(spePage.Value <= spePage.MaxValue) then begin
qrpPreview.PageNumber := spePage.Value;
stbStatus.Panels[1].Text := Format('%d-%d',
[qrpPreview.PageNumber, FPageCount]);
end
end;procedure TReportForm.qrpPreviewPageAvailable(Sender: TObject;
PageNum: Integer);
var
FText: string;
begin
inherited; // yjc Add This 2000.07.20 22:27
tlbtnZoomToWidth.Down := True;
actZoomToWidth.Execute;
FPageCount := QRPrinter.PageCount;
spePage.MaxValue := PageNum;
stbStatus.Panels[1].Text := Format('1-%d', [PageNum]); FText := QRPrinter.Title;
if FText <> EmptyStr then
FText := FText + ' - ';
case QRPrinter.Status of
mpReady: FText := FText + SQRReady;
mpBusy: begin
FText := FText + SQRBusy;
EnableActions(False)
end;
mpFinished: begin
FText := FText + SQRFinished;
spePage.Value := 1;
EnableActions(True)
end
end;
stbStatus.Panels[0].Text := FText;
end;procedure TReportForm.actPrintExecute(Sender: TObject);
begin
inherited; with Sender as TAction do begin
Enabled := False;
QRPrinter.Print;
Enabled := True
end
end;procedure TReportForm.actPrintSetupExecute(Sender: TObject);
begin
inherited; QRPrinter.PrintSetup
end;procedure TReportForm.actOpenExecute(Sender: TObject);
begin
inherited; if OpenDialog.Execute then begin
if FileExists(OpenDialog.FileName) then begin
QRPrinter.Load(OpenDialog.FileName);
qrpPreviewPageAvailable(nil, QRPrinter.PageCount);
qrpPreview.PreviewImage.PageNumber := 1;
end
end
end;procedure TReportForm.EnableActions(const AEnabled: Boolean);
var
i: Integer;
begin
for i := 0 to alActions.ActionCount - 1 do
(alActions[i] as TAction).Enabled := AEnabled;
speZoom.Enabled := AEnabled;
spePage.Enabled := AEnabled;
end;procedure TReportForm.actRptSaveExecute(Sender: TObject);
var
AExportFilter: TQRExportFilter;
begin
inherited; SaveDialog.Filter := QRExportFilterLibrary.SaveDialogFilterString;
if SaveDialog.Execute then
if SaveDialog.FilterIndex = 1 then
QRPrinter.Save(SaveDialog.FileName)
else begin
AExportFilter := TQRExportFilterLibraryEntry(
QRExportFilterLibrary.Filters[SaveDialog.FilterIndex - 2]).
ExportFilterClass.Create(SaveDialog.Filename);
try
QRPrinter.ExportToFilter(AExportFilter);
finally
AExportFilter.Free
end
end
end;procedure TReportForm.actCloseExecute(Sender: TObject);
begin
//TControlForm(ParentForm).ClosingReport;
Back
end;end.
我要用这一个预览界面预览三个内容不一样的报表!
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
QRPrntr, StdCtrls, Buttons, ToolWin, ComCtrls, ExtCtrls;type
TForm2 = class(TForm)
QRPreview1: TQRPreview;
ToolBar1: TToolBar;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
Bevel3: TBevel;
Bevel4: TBevel;
FontDialog1: TFontDialog;
Bevel1: TBevel;
StatusBar1: TStatusBar;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
private
i:integer; { Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation
{$R *.DFM}procedure TForm2.BitBtn1Click(Sender: TObject);
begin
close;
end;procedure TForm2.FormCreate(Sender: TObject);
begin
i:=100;
end;procedure TForm2.SpeedButton4Click(Sender: TObject);
begin
close;
end;procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
i:=i+5;
qrpreview1.Zoom:=i;
end;procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
i:=i-5;
qrpreview1.Zoom:=i;
end;procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
QRPreview1.QRPrinter.Print;
end;procedure TForm2.SpeedButton6Click(Sender: TObject);
begin
i:=100;
qrpreview1.Zoom:=90;
end;procedure TForm2.SpeedButton5Click(Sender: TObject);
begin
qrpreview1.Zoom:=100;
end;procedure TForm2.SpeedButton8Click(Sender: TObject);
begin
qrpreview1.PageNumber:=1;
end;procedure TForm2.SpeedButton10Click(Sender: TObject);
begin
qrpreview1.PageNumber:=qrpreview1.PageNumber-1;
end;
procedure TForm2.SpeedButton9Click(Sender: TObject);
begin
qrpreview1.PageNumber:=qrpreview1.PageNumber+1;
end;procedure TForm2.SpeedButton7Click(Sender: TObject);
begin
qrpreview1.PageNumber:=qrpreview1.QRPrinter.PageCount;
end;procedure TForm2.SpeedButton11Click(Sender: TObject);
begin
qrpreview1.QRPrinter.PrintSetup;
end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
QRPrntr, StdCtrls, Buttons, ToolWin, ComCtrls, ExtCtrls;type
TForm2 = class(TForm)
QRPreview1: TQRPreview;
ToolBar1: TToolBar;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
Bevel3: TBevel;
Bevel4: TBevel;
FontDialog1: TFontDialog;
Bevel1: TBevel;
StatusBar1: TStatusBar;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
private
i:integer; { Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation
{$R *.DFM}procedure TForm2.BitBtn1Click(Sender: TObject);
begin
close;
end;procedure TForm2.FormCreate(Sender: TObject);
begin
i:=100;
end;procedure TForm2.SpeedButton4Click(Sender: TObject);
begin
close;
end;procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
i:=i+5;
qrpreview1.Zoom:=i;
end;procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
i:=i-5;
qrpreview1.Zoom:=i;
end;procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
QRPreview1.QRPrinter.Print;
end;procedure TForm2.SpeedButton6Click(Sender: TObject);
begin
i:=100;
qrpreview1.Zoom:=90;
end;procedure TForm2.SpeedButton5Click(Sender: TObject);
begin
qrpreview1.Zoom:=100;
end;procedure TForm2.SpeedButton8Click(Sender: TObject);
begin
qrpreview1.PageNumber:=1;
end;procedure TForm2.SpeedButton10Click(Sender: TObject);
begin
qrpreview1.PageNumber:=qrpreview1.PageNumber-1;
end;
procedure TForm2.SpeedButton9Click(Sender: TObject);
begin
qrpreview1.PageNumber:=qrpreview1.PageNumber+1;
end;procedure TForm2.SpeedButton7Click(Sender: TObject);
begin
qrpreview1.PageNumber:=qrpreview1.QRPrinter.PageCount;
end;procedure TForm2.SpeedButton11Click(Sender: TObject);
begin
qrpreview1.QRPrinter.PrintSetup;
end;end.
ith QRCompositeReport1.Reports do
begin
Clear;
if radiobutton1.Checked then
begin
add(form1.quickrep1);
exit;
end;
add(dy_gbllbform.QuickRep1 );
add(dy_gbllb_1form.QuickRep1 );
add(dy_gbllb_2form.quickrep1);
add(dy_gbllb_3form.quickrep1);
add(dy_gbllb_4form.quickrep1);
add(dy_gbllb_4form.quickrep1);
add(dy_gbllb_4form.quickrep1);
add(dy_gbllb_5form.quickrep1);
add(dy_gbllb_5form.quickrep1);
add(dy_gbllb_5form.quickrep1);
add(dy_gbllb_6form.quickrep1);
add(dy_gbllb_7form.quickrep1);
add(dy_gbllb_8form.quickrep1);
end;
end;
procedure TForm.QRCompositeReport1AddReports(Sender: TObject);
begin
with QRCompositeReport1.Reports do
begin
clear;
if radiobutton1.Checked then
begin
add(form3.QuickRep1);
exit;
end;
add(form3.QuickRep1);
add(form4.quickrep1);
add(form5.quickrep1);
add(Form6.QuickRep1);
add(Form7.QuickRep1 );
add(Form8.QuickRep1 ) ;
end;
end;
end;