📄 ureppreview.pas
字号:
unit uRepPreview;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,
Dialogs, ExtCtrls, Buttons, QRPrntr, ComCtrls,StdCtrls,QuickRpt,QRCtrls,QRExport,
ToolWin, ImgList;
type
TfrmRepPreview = class(TForm)
stbar: TStatusBar;
QRPreview: TQRPreview;
SaveDialog1: TSaveDialog;
ToolBar6: TToolBar;
btnWholePage: TToolButton;
btnNormalPage: TToolButton;
btnRatePage: TToolButton;
btnFirst: TToolButton;
btnprive: TToolButton;
btnNext: TToolButton;
btnend: TToolButton;
btnPrint: TToolButton;
btnPrintView: TToolButton;
btnClose: TToolButton;
btnTxt: TToolButton;
ToolButton12: TToolButton;
ImageList1: TImageList;
idtPageNo: TEdit;
UpDown: TUpDown;
idtZoom: TComboBox;
procedure QRPreviewPageAvailable(Sender: TObject; PageNum: Integer);
procedure idtZoomChange(Sender: TObject);
procedure idtPageNoChange(Sender: TObject);
procedure idtPageNoKeyPress(Sender: TObject; var Key: Char);
procedure idtZoomKeyPress(Sender: TObject; var Key: Char);
procedure btnWholePageClick(Sender: TObject);
procedure btnNormalPageClick(Sender: TObject);
procedure btnRatePageClick(Sender: TObject);
procedure btnFirstClick(Sender: TObject);
procedure btnpriveClick(Sender: TObject);
procedure btnNextClick(Sender: TObject);
procedure btnendClick(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
procedure btnPrintViewClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure btnTxtClick(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
pagecount :integer ;
procedure nave(PageNum: integer);
procedure saveRep(TypeIndex:integer);
public
{ Public declarations }
end;
var
frmRepPreview: TfrmRepPreview;
implementation
{$R *.dfm}
{按钮控制}
procedure TfrmRepPreview.nave(PageNum: integer);
begin
btnfirst.Enabled:=NOT(PageNum=1);
btnprive.Enabled:=NOT(PageNum=1);
btnnext.Enabled:=NOT(PageNum=pagecount);
btnend.Enabled:=NOT(PageNum=pagecount);
end;
{保存函数}
procedure TfrmRepPreview.saveRep(TypeIndex:integer);
var
defae:array[1..8] of string;
aHTMLFilt :TQRHTMLDocumentFilter;
begin
defae[1]:='QRP';defae[2]:='TXT';defae[3]:='CSV';
defae[4]:='HTM';defae[5]:='PDF';defae[6]:='WMF';
defae[7]:='RTF';defae[8]:='XLS';
if SaveDialog1.Execute then
begin
//1..TXT;2.CSV;3.XLS;4.RTF;5.HTML
SaveDialog1.FileName :=ChangeFileExt(SaveDialog1.FileName,'.'+defae[TypeIndex]);
case TypeIndex of
1: QRPreview.QRPrinter.Save(SaveDialog1.FileName);
2: QRPreview.QRPrinter.ExportToFilter(TQRAsciiExportFilter.Create(SaveDialog1.FileName));
3: QRPreview.QRPrinter.ExportToFilter(TQRCommaSeparatedFilter.Create(SaveDialog1.FileName));
4: begin aHTMLFilt:=TQRHTMLDocumentFilter.Create(SaveDialog1.FileName);
QRPreview.QRPrinter.ExportToFilter(aHTMLFilt);
aHTMLFilt.free;
end;
end;//case
end;//if
end ;
procedure TfrmRepPreview.QRPreviewPageAvailable(Sender: TObject;
PageNum: Integer);
begin
pagecount:=QRPreview.QRPrinter.PageCount;
UpDown.Max :=pagecount;
UpDown.Min :=1;
end;
procedure TfrmRepPreview.idtZoomChange(Sender: TObject);
var
i:integer;
strZoom :string ;
begin //显示比例
strZoom :=trim(idtZoom.Text);
if strZoom='' then exit ;
i :=pos('%',strZoom);
if i>0 then i :=StrToInt(copy(strZoom,0,i-1))
else i :=StrToInt(strZoom);
QRPreview.Zoom:=i;
end;
procedure TfrmRepPreview.idtPageNoChange(Sender: TObject);
var pnum,code :integer;
begin //显示页码
val(trim(idtPageNo.Text),pnum,code);
if QRPreview.QRPrinter=nil then exit ;
if (pnum>0) and (pnum<=QRPreview.QRPrinter.PageCount) then
begin
QRPreview.PageNumber:=pnum;
end;//if
nave(QRPreview.PageNumber);
end;
procedure TfrmRepPreview.idtPageNoKeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9']) AND (KEY <> #8) then
begin
key := #0;
end;
end;
procedure TfrmRepPreview.idtZoomKeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9','%']) AND (KEY <> #8) then
begin
key := #0;
end;
end;
procedure TfrmRepPreview.btnWholePageClick(Sender: TObject);
begin //整页显示
QRPreview.ZoomToFit;
end;
procedure TfrmRepPreview.btnNormalPageClick(Sender: TObject);
begin //原页大小
QRPreview.Zoom:=100;
end;
procedure TfrmRepPreview.btnRatePageClick(Sender: TObject);
begin //按页宽显示
QRPreview.ZoomToWidth;
end;
procedure TfrmRepPreview.btnFirstClick(Sender: TObject);
begin //首页
QRPreview.PageNumber:=1;
nave(QRPreview.PageNumber);
end;
procedure TfrmRepPreview.btnpriveClick(Sender: TObject);
begin //上一页
if QRPreview.PageNumber>1 then
begin
QRPreview.PageNumber:=QRPreview.PageNumber-1;
end;//if
nave(QRPreview.PageNumber);
end;
procedure TfrmRepPreview.btnNextClick(Sender: TObject);
begin //下一页
if QRPreview.PageNumber<QRPreview.QRPrinter.PageCount then
begin
QRPreview.PageNumber:=QRPreview.PageNumber+1;
end;//if
nave(QRPreview.PageNumber);
end;
procedure TfrmRepPreview.btnendClick(Sender: TObject);
begin //未页
QRPreview.PageNumber:={QRPreview.QRPrinter.}PageCount;
nave(QRPreview.PageNumber);
end;
procedure TfrmRepPreview.btnPrintClick(Sender: TObject);
begin
QRPreview.QRPrinter.Print; //打印
end;
procedure TfrmRepPreview.btnPrintViewClick(Sender: TObject);
begin
QRPreview.QRPrinter.PrintSetup; //打印设置
end;
procedure TfrmRepPreview.btnCloseClick(Sender: TObject);
begin
close ;
end;
procedure TfrmRepPreview.btnTxtClick(Sender: TObject);
begin // Txt
saveRep(2);
end;
procedure TfrmRepPreview.ToolButton12Click(Sender: TObject);
begin //Excle
saveRep(3);
end;
procedure TfrmRepPreview.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action :=caFree ;
end;
procedure TfrmRepPreview.FormCreate(Sender: TObject);
begin
idtZoom.ItemIndex :=2 ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -