PageBuilder- 分页管理类

阅读(489) 标签: , , ireport,

润乾报表除了默认情况下根据纸张大小进行分页,在网页上如果用tag标签发布报表还可以通过widthheight来指定宽与高进行分页,如果不通过tag标签发布报表,那么就需要PagaBuilder对象来进行分页管理。它能根据IReport进行分页, 可返回分页后的总页数, 以及有效页号对应的新IReport对象。

 

实例请参考API实例 / 运算报表 / 展现报表

 

int startPage=Integer.parseInt(request.getParameter("startPage"));

  … …

//根据IReport对象构建分页对象PageBuilder

PageBuilder pb = new PageBuilder(iReport,800,600);

int totalPage = pb. getPageCount(();//取得总页数

session.setAttribute("raqsoft_pagebuilder",pb);//把分页对象在session中保存

//根据分页信息取得需要展现的单元格集组成的对象

IReport iReporTemp = pb.getPage(startPage);

  … …

根据保存在session中的分页信息,我们就可以实现点击下一页而不用再计算了:

PageBuilder pb=(PageBuilder)session.getAttribute("raqsoft_pagebuilder");

  if(pb!=null){

//取指定页的IReport对象

  iReporTemp =pb.getPage(startPage);

     IRport的其它操作

  }

 

l  构造函数

类名:com.raqsoft.report.usermodel.PageBuilder

public PageBuilder(IReport r) throws java.lang. Throwable//根据IReport构造分页对象

 

public PageBuilder(IReport r,

  float pageWidth,

  float pageHeight)

   throws java.lang. Throwable//根据给定宽高对报表进行分页

Parameters: pageWidth - 显示报表的区域宽度(扣除边距以后)

pageHeight - 显示报表的区域高度(扣除边距以后)

 

public PageBuilder(IReport r,

  float pageWidth,

  float pageHeight,

  int columns)

  throws java.lang. Throwable//根据给定的宽高及分栏数进行分页

Parameters: pageWidth - 显示报表的区域宽度(扣除边距以后)

pageHeight - 显示报表的区域高度(扣除边距以后)

columns - 分栏数

 

public PageBuilder(IReport r,

  java.lang.String key)

  throws java.lang. Throwable

Parameters:  key – 字符串

 

public PageBuilder(IReport r,

  short page)

  throws java.lang. Throwable//根据给定的宽高及分栏数进行分页

Parameters:  r - 要进行分页的报表

paper - PrintSetup中定义的纸张类型

 

public PageBuilder(IReport r,

  short page,

  java.lang.String key)

  throws java.lang. Throwable//根据给定的宽高及分栏数进行分页

Parameters:  r - 要进行分页的报表

paper - PrintSetup中定义的纸张类型

key – 字符串

 

public PageBuilder(IReport r,

  float pageWidth,

  float pageHeight,

java.lang.String key)

   throws java.lang. Throwable

Parameters: pageWidth - 显示报表的区域宽度(扣除边距以后)

pageHeight - 显示报表的区域高度(扣除边距以后)

key – 字符串

 

public PageBuilder(IReport r,

  float pageWidth,

  float pageHeight,

  int columns, java.lang.String key)

  throws java.lang. Throwable

Parameters: pageWidth - 显示报表的区域宽度(扣除边距以后)

pageHeight - 显示报表的区域高度(扣除边距以后)

columns - 分栏数

key – 字符串

 

public PageBuilder(IReport r,

  java.awt.print.PageFormat pf,

int columns)

   throws java.lang. Throwable

Parameters:  r - 要进行分页的报表

pageHeight - 显示报表的区域高度(扣除边距以后)

columns - 分栏数

 

public PageBuilder(IReport r,

  java.awt.print.PageFormat pf,

int columns,

java.lang.String param)

    throws java.lang. Throwable

Parameters:  r - 要进行分页的报表

pageHeight - 显示报表的区域高度(扣除边距以后)

columns - 分栏数

param – 字符串

 

public PageBuilder(IReport r,

  java.awt.print.PageFormat pf,

int columns,

java.lang.String param,

java.lang.String key)

    throws java.lang. Throwable

Parameters:  r - 要进行分页的报表

pageHeight - 显示报表的区域高度(扣除边距以后)

columns - 分栏数

param – 字符串

key – 字符串

 

public PageBuilder(IReport r,

  PagerInfo pi)

   throws java.lang. Throwable  //根据pi里的信息进行分页

Parameters:  r - 要进行分页的报表

pi - 分页信息

 

public PageBuilder(IReport r,

  PagerInfo pi,

java.lang.String key)

   throws java.lang. Throwable  //根据pi里的信息进行分页

Parameters:  r - 要进行分页的报表

pi - 分页信息

key – 字符串

 

public PageBuilder(IReport r,

  PagerInfo pi,

boolean canInterrupted)

   throws java.lang. Throwable  //根据pi里的信息进行分页

Parameters:  r - 要进行分页的报表

pi - 分页信息

canInterrupted - boolean true: 可以被打断

 

public PageBuilder(IReport r,

  PagerInfo pi,

boolean canInterrupted,

java.lang.String key)

   throws java.lang. Throwable  //根据pi里的信息进行分页

Parameters:  r - 要进行分页的报表

pi - 分页信息

canInterrupted - boolean true: 可以被打断

key – 字符串

 

l  可用方法

getPageCount

  法:    public int getPageCount()

功能说明:  返回分页后的总页数

Returns  :     分页的总页数

调用举例:    PageBuilder pb = new PageBuilder(iReport,600,800);

int totalPage pb.getPageCount();

getPage

  法:    public IReport getPage(int page)

  throws java.lang.Exception

参数说明:    page-指定的页号

功能说明:  返回指定页所对应的报表对象

Returns  :     指定页所对应的报表对象

调用举例:    PageBuilder pb = new PageBuilder(iReport,600,800);

        iReport = pb.getPage(2);//取第二页的报表对象

getAllPages

  法:    public IReport[] getAllPages()

  throws java.lang.Exception

功能说明:  获得分页后的报表对象集合

Returns  :     分页后的所有页集合

调用举例:    IReport[] pbs = pb.getAllPages();

 

getPapersCount

  法:    public int getPapersCount()

功能说明:  获得打印时的页数

Returns  :     打印时的页数

调用举例:    int printNum = pb.getPapersCount();

 

isApplet

  法:    public static boolean isApplet()

功能说明:  是否是程序

调用举例:   

 

createPages

  法:    public void createPages()

  throws java.lang.Throwable

功能说明:  分页过程可以被打断的PageBuilder需要先调用此接口才能取页信息

调用举例:   

 

Interrupt

  法:    public void interrupt()

功能说明:  中断分页过程,只对可中断的PageBuilder起作用

调用举例:   

 

getXPageCount

  法:    public int getXPageCount()

功能说明:  返回分页后横向的总页数

Returns    int - 分页后横向的总页数

调用举例:   

 

getYPageCount

  法:    public int getYPageCount()

功能说明:  返回分页后横向的总页数

Returns    int - 分页后横向的总页数

调用举例:   

 

getPagerInfo

  法:    public PagerInfo getPagerInfo()

功能说明:  获得分页所使用的信息

Returns    分页所使用的信息

调用举例:   

 

cacheSave

  法:    public boolean cacheSave(java.lang.String path,

  java.lang.String name,

  boolean bZip)

  throws java.io.IOException

功能说明:  是否保存缓存

调用举例:   

 

cacheRead

  法:    public static PageBuilder cacheRead(IReport report,

  PagerInfo pi,

  java.lang.String path,

  java.lang.String name,

  boolean bZip)

  throws java.io.IOException,

  java.lang.ClassNotFoundException

功能说明:  是否保存缓存

调用举例: