📄 manual.txt
字号:
祝贺您!
欢迎使用21世纪软件工作室提供的软件工具包和软件。
报表打印控件ScreenReport for Delphi使用说明
一、功能说明
ScreenReport打印控件是一个所见即所得的Delphi打印控件。使用这个控件可以在你的应用程序中很方
便地进行数据报表的预显示和打印。
二、文件
PRINTP.DCR:控件的DCR文件;
PRINTP.DCU:控件的DCU文件;
PRINTP.DFM:控件的DFM文件;
PRINTCAN.DCU:打印提示信息窗口的DCU文件;
PRINTCAN.DFM:打印提示信息窗口的DCU文件;
Manual.TXT:控件的使用说明文件;
三、安装
作为Delphi的控件安装:
第一、将本目录下的所有文件拷贝到Delphi目录的LIB或其他目录下;
第二、选择“Options”菜单的“Install Components...”子菜单进入Install Components窗口;
第三、点“Add”按钮;
第四、点“Browse”按钮;
第五、选择PRINTP.DCU;
第六、点“ Ok”按钮,Delphi重新编译系统库。
若出现安装不上的情况,一般是Delphi的Bin目录下的complib.dcl或其他正在使用的控件库文件
有问题,重新安装Delphi后一般就可解决。
四、重要属性
1. PrnPanel: 要打印内容所在的Panel。类型为TPanel。
只有该Panel上的内容才能打印输出。如果没有该Panel,可通过OnPaint事件进行打印。
2. DrawMargins: 是否打印边框。类型为Boolean。
值 含义
========================
True 打印边框
False 不打印边框
3. PreviewMode: 是否预显示打印内容。类型为Boolean。
值 含义
=========================
True 预显示
False 不预显示
4. DetailDatasource: 需要循环打印的数据源。用于DBGrid的打印,类型为TDatasource。
5. PrnEmpty:对于DBGrid是否用空行填满指定的打印行数。类型为Boolean。
值 含义
=============================
True 要用空行填满
False 不用空行填满
6. GridBorderStyle: DBGrid的网格线类型。类型为TGBStyle。
值 含义
===============================
gbsNone 不打印分隔线
gbsHorz 打印水平分隔线
gbsVert 打印垂直分隔线
gbsBottom 打印水平分隔线
gbsBoth 打印水平、垂直分隔线
7. BottomTitle: 页脚内容。类型为String。
若为空,不打印页脚内容;否则打印页脚内容。页脚内容中可代入如下设置参数及变量:
%BOTTOM% :若有此项,则页脚内容将打印在页底边,否则紧接内容打印
%GETPAGE%:打印页码
%GETPAGESCOUNT%:打印总页数
%GETDATE%: 打印日期
%GETTIME%: 打印时间
注意:以上变量只能用大写,可放在BottomTitle中的任意地方
如:
'昆明二十一世纪软件工作室制表%BOTTOM% %GETDATE% %GETTIME% 第%GETPAGE%页 共%GETPAGESCOUNT%页'
8. BottomTitleFont: 页脚的字体属性。类型为TFont。
9. PrinterPaperSize: 设置打印纸的类型。类型为TPrinterPaperSize。
值 含义
===============================
ppsLetter Letter, 8 1/2 x 11 in.
ppsLedger Ledger, 17 x 11 in.
ppsLegal Legal, 8 1/2 x 14 in.
ppsA3 A3, 297 x 420 mm
ppsA4 A4, 210 x 297 mm
ppsA5 A5, 148 x 210 mm
ppsB4 B4, 250 x 354 mm
ppsB5 B5, 182 x 257 mm
pps11x17in 11 x 17 in.
ppsUser User-defined
10. myOrientation: 打印方向。类型为TPrinterOrientation。
值 含义
===============================
poPortrait 纵向打印
poLandscape 横向打印
五、方法
1. function PrinterView(const pCount,recCount:Integer):Boolean;
功能: 调用打印控件
参数:pCount: 总页数,当为0时,按recCount来计算,在不处理OnPaint事件时没有用.
recCount:指定DBGrid每页打印的记录数
2. procedure PainInit(Canvas,PageNumber);
功能: 用于处理OnPaint事件时初始化打印环境,此函数必须在绘制内容前调用.
参数: 只能为Canvas和PageNumber;
六、事件
procedure <Form名>.<控件名>Paint(Canvas: TPreviewCanvas; PageNumber : LongInt);
打印事件。用于程序绘制打印内容,若处理了此事件,则用此事件的处理过程替代原来的
屏幕打印程序
参数:Canvas -->程序员自己的打印Canvas,类型为TPreviewCanvas。
PageNumber -->当前打印的页号,类型为LongInt。
TPreviewCanvas可以使用的打印函数如下:关于它们的使用请参看TCanvas.
1. procedure Rectangle( x, y, x2, y2 : integer );
2. procedure RoundRect( x1, y1, x2, y2, x3, y3 : integer );
3. procedure TextOut( x, y : integer; const text : string );
4. procedure TextRect( Rect : TRect; X, Y : Longint; const Text : string );
5. procedure FloodFill( X,Y : Longint; Color : TColor; FillStyle : TFillStyle );
6. procedure StretchDraw( const rect : TRect; Graphic : TGraphic );
7. function TextHeight( const text : string ) : Longint;
8. function TextWidth( const text : string ) : Longint;
9. procedure FillRect( const rect : TRect );
10.procedure MoveTo( x, y : longint );
11.procedure LineTo( x, y : longint );
例子:
procedure TForm1.Preview1Paint(Canvas: TPreviewCanvas; PageNumber : LongInt);
var
Font : TFont;
rect : TRect;
val : string;
begin
if PageNumber = 1 then
begin
Preview1.PainInit(Canvas,PageNumber);
Canvas.font.size:=12;
rect.left:=PixelsToTwips(1,canvas);
rect.top:=PixelsToTwips(1,canvas);
Canvas.Textout( rect.left, rect.top, 'Printp打印测试' );
rect.left:=PixelsToTwips(2,canvas);
rect.top:=PixelsToTwips(PointsToPixels(12),canvas);
Canvas.Textout( rect.left, rect.top, 'Printp打印测试');
rect.top := 0;
rect.left := Canvas.TextWidth('The');
rect.bottom := Canvas.TextHeight( 'Printp打印测试' ) + 200;
rect.right := rect.left + Canvas.TextWidth( 'Printp打印测试' ) + 200;
Canvas.Brush.Color := clBlack;
Canvas.FillRect( rect );
Canvas.Font.Color := clWhite;
Canvas.Textout( rect.left + 100, 100, 'Printp打印测试' );
Canvas.Brush.Color := clWhite;
Canvas.Font.Color := clBlack;
Canvas.Font.Size := 12;
rect.left := Canvas.TwipMaxX - Canvas.TextWidth('Newsletter Number')
- Canvas.TextWidth( '***00/00/00' ) - 100;
Canvas.TextOut( rect.left, 100, 'Printp打印测试' );
rect.top := 200+Canvas.textheight('N');
val := '1';
Canvas.TextOut( Canvas.TwipMaxX - 100 - Canvas.TextWidth(val), 100,
val );
val := FormatDateTime( 'dd/mm/yy', Now );
Canvas.TextOut( rect.left, rect.top, '日期测试' );
Canvas.TextOut( Canvas.TwipMaxX - 100 - Canvas.TextWidth(val),
rect.top, val );
rect.top := rect.bottom + 600;
Canvas.Font.Size := 12;
val := 'This week''s new releases... 20% OFF TO CARD HOLDERS for the first month of release';
rect.left := (Canvas.TwipMaxX - Canvas.TextWidth(val)) div 2;
Canvas.TextOut( rect.left, rect.top, val );
Canvas.Font.Style := [];
rect.bottom := rect.top + Canvas.TextHeight( 'W' ) + 100;
rect.top := 20;
rect.left := 20;
rect.right := Canvas.TwipMaxX - 20;
Canvas.Brush.Color := clBlack;
Canvas.FrameRect( rect );
Canvas.Brush.Color := clWhite;
end
else
begin
Canvas.Font.Size := 36;
Canvas.Textout( 1440, 1440, '打印测试' );
Canvas.Font.Size := 36;
Canvas.TextOut( 4*1440, 20, 'Page Number :'+inttostr( PageNumber ) );
end;
end;
七、例子
请参看..\Demo\Demo.DPR
八、备注
如果要打印Shape,请使用ScreenReport附带的TArtShape控件代替Delphi的Shape。
九、总代理
昆明日成软件专卖店
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -