PageBuilder- 分页管理类

阅读(1398) 标签: , , 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

功能说明:  是否保存缓存

调用举例: