⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manual.txt

📁 本系统在一些大中型企业(跨多达24个区域)一直都在很好的服务过
💻 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 + -