润乾报表除了默认情况下根据纸张大小进行分页,在网页上如果用tag标签发布报表还可以通过width及height来指定宽与高进行分页,如果不通过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
功能说明: 是否保存缓存
调用举例: 略