修改jpivot源码实现分页

使用jpivot过程中,如果查询到的结果行数超过一个阈值,后面的显示就会丢失,这时需要分页显示。

假设应用中组装的MDX语句已经含有NON EMPTY,把空行直接过滤掉了。

这时需要修改的jpivot源码文件包括:

1、TableComponent.java

其中方法buildRows2Dim(Element)

在方法的最后的else块中,代码如下:

...
cellElem.setAttribute("value", v);
cellElem.setAttribute("colspan", Integer.toString(nosColumns));
row.appendChild(cellElem);
} else {
    ResultCache resultCache = ResultCache.getInstance();
    int currentPage = 1;  //当前页数
    int pageRows = 100;  //每页多少行,默认100行
    if(resultCache.getResult("currentPage") != null) {
         currentPage = (Integer)resultCache.getResult("currentPage");
    }
    if(resultCache.getResult("pageRows ") != null) {
         pageRows = (Integer)resultCache.getResult("pageRows ");
    }
    if(pageRows % 2 != 0) {  //保证每页行数是偶数
       pageRows  += 1;
    }
    int i = 0;  //每页起始位置
    int end = 0;  //每页结束位置
    if(nosRows > pageRows ) {
        i = (currentPage - 1) * pageRows ;
        if(nosRows - i > pageRows) {
           end = i + 100;
        } else if(nosRows - i <= 0) {
              i = 0;
              end = i + 100;
        } else {
              end = nosRows;
        }
    } else {
        end = nosRows;
    }
    for(; i < end; i++) {
         boolean even = (i % 2 == 0);
         Element row = append("row", parent);
         rowAxisBuilder.buildRow(row, i);
         buildCells(row, even);
    }
}    

其中使用到echache缓存了 当前页数 和 每页多少行  的值,从而进行计算需要显示结果,有关echache的使用参见http://www.cnblogs.com/hongxf1990/p/4534243.html

2、SpanCalc.java

其中方法makePosSpan(Span span, int hierSpans)

添加代码:

if(forcePositionBreak[pi][hi])
     break loop;

ResultCache resultCahe = ResultCache.getInstance();
int pageRows = 100;  //每页显示的行数
if(resultCahe.getResult("pageRows ") != null) {
    pageRows = resultCahe.getResult("pageRows");
}
if(pageRows % 2 == 0) {  //保证每行显示的是偶数
    pageRows += 1;
}
if(pi % pageRows == 0) {
  break loop;
} 

这里强制按照每页显示的行数进行分行

修改这两个java文件即可,这里其实就是把原本全部的行数按照需要分段显示在页面上

时间: 2024-08-26 15:31:13

修改jpivot源码实现分页的相关文章

【转】mondrian+jpivot源码导入eclipse并配置数据源

导入mondrian源码步骤如下: 1 ) 下载mondrian-3.0.0.10550 和 jpivot 1.8.0 , mondrian-3.0.0以后的版本 和 jpivot的源码整合不到一起.  jpivot好久没更新了!!!!   下载地址:http://mondrian.pentaho.com/ 2 ) 在eclipse里新建个web工程, 命名mondrian. 3 ) 解压mondrian-3.0.0.10550/mondrian-3.0.0.10550-src.zip , 将解

修改CAS源码是的基于DB的认证方式配置更灵活

最近在做CAS配置的时候,遇到了数据源不提供密码等数据的情况下,怎样实现密码输入认证呢? 第一步:新建Java项目,根据假面算法生成CAS加密工具 出于保密需要不提供自定义的加密工具,在您的实际项目中,你可采用cas默认的加密方式比如md5. 第二步:修改CAS源码 找到cas-server-support-jdbc子模块找到包路径cas-server-support-jdbc\src\main\java\org\jasig\cas\adaptors\jdbc\,在复制一份QueryDataba

修改extjs源码关闭按钮样式

首先通过文件引用找到extjs的样式文件: <link rel="stylesheet" type="text/css" href="<%=basePath%>/publicresource/extlib/resources/css/ext-all.css" /> 打开ext-all.css在文件最后添加下面代码 .x-tool-close {          background-position:-2 -380px;

openwrt路由器更换了Flash之后需要修改的源码

假如我使用的是WR703N,改为8M内存: 1 修改openwrt/target/linux/ar71xx/image/Makefile文件 $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3420V2,tl-mr3420-v2,TL-MR3420-v2,ttyS0,115200,0x34200002,1,4Mlzma)) #$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR703,tl-w

修改flume源码,使其HTTPSource具备访问路径功能

目前有一个需求,就是Flume可以作为一个类似于tomcat的服务器,可以通过post请求进行访问,并且路径需要:ip:port/contextPath格式. 经过一些资料获悉,httpSource只是httpSource的一个玩具工具,可以说毛坯版,目前仅仅支持的是按照ip:port访问,并不具备servlet这种功能. 那么打开源码看一下: 这上面便是httpsource源码了,可以看到主要是5个类:HTTPBadRequestException,HTTPSource,HTTPSourceC

(六)SSO之CAS框架扩展 修改CAS源码实现与ESS动态密码验证对接

题记: 偶尔的偶尔我们会听到这个网站的数据泄露了,那个网站的用户数据泄露了,让用户重新修改登录密码,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的网站,更需要增加安全性了. 正文: 对于安全性问题,我们如何解决呢? 解决方案: 1.避免sql注入问题. 2.用户登录密码加密. 3.使用https安全访问方式. 4.使用第三方设备,像银行一般使用的密码口令. 5.... 前三种方案是比较常见的,这里主要说第四种解决方案,我们在前三种方案的基础上,使用了第三方的设备,就像网

修改Launcher3源码在ADT(Eclipse)上调试

Android4.4上的Launcher3源码:http://download.csdn.net/detail/deng0zhaotai/8281391 修改后能在Eclipse上调试的Android4.4 Launcher3代码:http://download.csdn.net/detail/deng0zhaotai/8284961 可以下载两个工程进行对比就知道有哪些地方修改过的,需要修改的地方 1.删除两个文件src/com/android/launcher3/LauncherBackup

修改jar源码,重新打包

1.下载源码和jar 并解压 2.修改源码 3.对修改后的java文件进行编译[如果有依赖包通过classpath放进去] javac -classpath E:\IDE\repository2\org\mybatis\mybatis\3.3.0\mybatis-3.3.0.jar  MetaClass.java 4.生成了class文件后放回并且替换最开始解压class源码的文件里面 5.重新把class包打包回去  jar cvfm mybatis-3.3.0-sources.jar MET

pc单机版雷电修改器源码

记得以前第一次接触电脑玩的第一个游戏就是雷电,那时候觉得这游戏真好玩,很过瘾.闲来没事干,所以想重温一下游戏,(当时玩的不是这个版本的雷电),那时候是和小伙伴一起玩的,可惜现在找不到那种感觉了. 现在玩单机游戏没有以前那种耐心了,现在只想开局就999级,金币99999. 所以就写了这么一个简单的修改器,有兴趣的朋友可以研究下. 可以修改生命数量,炸弹数量,修改射出的武器效果. 那个武器我是观察生命的基址得出来的,一般单机游戏找到生命值的基址,其他类似炸弹数和武器都是在附近的. 这个是红色散弹 绿