ReportBuilder设置打印页范围技巧

影视人阿杜

影视人阿杜

2016-02-19 19:57

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

  2005-6-23 fh@mail.trisunwyse.com
  技术原理
  
     通过在TppReport的BeforePrint事件中对TPrinterDevice的PageSetting属性和PageList属性进行赋值
  为何要如此处理?
  根据分析ReportBuilder源码,我们得到如下的调用顺序TppViewer - TppProducer - TppPrinterDevice - TppPageRequest - TppPublisher,其中 TppPageRequest 封装了打印页范围信息,而TppPrinterDevice 负责将指定的页发送到PrinterCanvas

  实现步骤
    1、在调用单元声明一个类私有变量,用于保存打印页范围
    type
      ...
    private
      sPageRange: string;
      ...
    end;
    2、在调用单元声明一个类私有过程,用于处理TppReport.BeforePrint事件
  procedure TfrmMain.ppReportBeforePrint(Sender: TObject);
  begin
    if Sender is TppReport then
      if (Sender as TppReport).PrinterDevice nil then
      begin
        (Sender as TppReport).PrinterDevice.PageSetting := psPageList;
        ppTextToPageList(sPageRange, (Sender as TppReport).PrinterDevice.PageList, True);
      end;
  end;
    3、在打印之前设置打印页范围,将TppReport.BeforePrint引导到自定义过程
    sPageRange := '3-5';
    (ppViewer1.Report as TppReport).BeforePrint := ppReportBeforePrint;
    (ppViewer1.Report as TppReport).ShowPrintDialog := False;
    ppViewer1.Print;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  注意事项
    1,如果找不到TppReport类别,在接口引用单元添加ppReport单元
    2,如果找不到psPageList类别,在接口引用单元添加ppTypes单元
    3,如果找不到ppTextToPageList函数,在接口引用单元添加ppUtils单元
    4,sPageRange可以定义三种类型的页范围
       A:起止页:'3-10'//连接线分隔
       B:分隔页:'3,5,7'//逗号分隔
       C:单独页:'7'

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

ReportBuilder设置打印页范围技巧

编程语言 网络编程
ReportBuilder设置打印页范围技巧

WPS双面打印设置页边距的技巧

wps教程 wps office教程
WPS双面打印设置页边距的技巧

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

设置Word2018中打印范围的方法

word
设置Word2018中打印范围的方法

Word打印设置技巧

办公软件
Word打印设置技巧

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Word办公打印设置技巧

办公软件
Word办公打印设置技巧

Word打印设置技巧6则

电脑入门
Word打印设置技巧6则

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

自己写的一个利用快捷键截图的工具

自己写的一个利用快捷键截图的工具

Dreamweaver轻松快速打造Flash相册

Dreamweaver轻松快速打造Flash相册
下拉加载更多内容 ↓