收藏 分销(赏)

jpivot是目前用得最多得OLAP展现工具.doc

上传人:pc****0 文档编号:7238968 上传时间:2024-12-28 格式:DOC 页数:5 大小:40KB 下载积分:10 金币
下载 相关 举报
jpivot是目前用得最多得OLAP展现工具.doc_第1页
第1页 / 共5页
jpivot是目前用得最多得OLAP展现工具.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
jpivot是目前用得最多得OLAP展现工具,pentaho,spagoBI,openi等都是用他来做展现, jpivot中pdf打印输出中文 1.升级com.tonbeller.jpivot.print.PrintServlet文件到JPivot1.6.0以上,如果不想升级就修改PrintServlet 在init方法中增加以下语句.   java 代码  1. public void init(ServletConfig config) throws ServletException {    2.     super.init(config);    3.     try {    4.       // set base FOP FONT directory.  The font config  stuff will be looked for here    5.       Configuration.put("fontBaseDir", config.getServletContext().getRealPath("/WEB-INF/jpivot/print/"));    6.       // get the physical path for the config file    7.       String fopConfigPath = config.getServletContext().getRealPath("/WEB-INF/jpivot/print/userconfig.xml");    8.       // load the user proerties, contining the CustomFont font.    9.       new Options(new File(fopConfigPath));    10.    11.     } catch (FOPException e) {    12.       e.printStackTrace();    13.       logger.info("FOP user config file not loaded");    14.     } catch (Exception e) {    15.       e.printStackTrace();    16.       logger.info("FOP user config file not loaded");    17.     }    18.   }    19.    2.在WEB-INF\jpivot\print目录下建立userconfig.xml文件。内容如下:(仅配置黑体) xml 代码 1. <configuration>   2.    3. <fonts>   4.    5. <font metrics-file="simhei.xml" kerning="yes" embed-file="simhei.ttf">   6.    7. <font-triplet name="SimHei" style="normal" weight="normal"/>   8.    9. <font-triplet name="SimHei" style="normal" weight="bold"/>   10.    11. <font-triplet name="SimHei" style="italic" weight="normal"/>   12.    13. <font-triplet name="SimHei" style="italic" weight="bold"/>   14.    15. font>   16.    17. fonts>   18.    19. configuration>   20.    3. 下载Apache的FOP包,解开fop-0.20.5.jar,启用cmd,并到它的目录中,执行: java org.apache.fop.fonts.apps.TTFReader -ttcname SimHei C:\WINDOWS\Fonts\simhei.ttf simhei.xml 然后就会生成需要的两个字体描述文件:simhei.xml 4. 将simhei.xml,以及simhei.ttf文件放到WEB-INF\jpivot\print目录下。 5. 修改WEB-INF\jpivot\table目录下的fo_mdxtable.xsl文件,把所有的font-family对应成SimHei  jpivot excel导出中文 Excel中不支持UTF-8, Excel输出对应的xsl文件是:../web-inf/jpivot/table目录下的xls_mdxtable.xsl 只要这个文件的encoding换为GBK就可以了. mondrian是一个olap工具,jpviot是一个显示它处理结果的taglib,使用这2个工具可以做复杂的统计汇总并显示 OLAP:Mondrian&JPviot olap:online analytical processing(联机分析处理),实时的分析大量数据,其操作通常是 只读的.online意味着即使是大量的数据,系统对查询的响应也要足够快. olap使用一种技术叫做multimensional analysis(多维分析),关系数据库将数据存成行和列的形式,多维数据表包含轴和单元. mondrian包含4层:表示层,计算层,聚集层,存储层. 表示层:指最终呈现在用户显示器上的,以及与用户之间的交互,有许多方法来展现多维数据,包括数据透视表,饼,柱,线状图. 计算层:分析,验证,执行MDX查询. 聚集层:一个聚集指内存中一组计算值(cell),这些值通过维列来限制.计算层发送单元请求,如果请求不在缓存中,或者不能通过旋转聚集导出的话,聚集层向存储层发送请求. 聚合层是一个数据缓冲层,从数据库来的单元数据,聚合后提供给计算层。聚合层的主要作用是提高系统的性能。 存储层:提供聚集单元数据和维表的成员,这些层可以不在同一机子上,但是计算和聚集层必须在同一台机子上. 三种需要存储的数据:1:事实数据2:聚集3:维 配置文件中的特定含义: 1:cube(立方体):是维和量的集合 2:measure(量):一个具体的测量量 3:dimension(维):一个属性或者一系列属性,通过维可以将量分类 下面是我关于jpviot的修改:jpviot是显示mondrian的一个taglib 问题1:让行和列的标题显示为中文,此问题非常简单,只需要在你的schema中设置一下编码即可,例如在FoodMart中设置如下 <?xml version="1.0" encoding="gb2312"?> 然后可以这样描述Measure: <Measure name="库存消耗" column="store_cost" aggregator="sum" formatString="#,###.00"/> 所有带name属性的都可以替换成中文,jpviot会自动显示这些中文. 问题2:关于去掉Measure标题的问题: 默认生成的报表中会有这么一行 <tr> <th rowspan="1" colspan="2" class="corner-heading" nowrap="nowrap">&nbsp;</th><th rowspan="1" colspan="3" class="heading-heading" nowrap="nowrap"><img height="9" width="9" border="0" src="/jpivot/jpivot/table/drill-position-other.gif">Measures</th> </tr> 这一行有个默认的标题是Measure,如果你不想删除这一行,而仅仅想修改这个标题的话,可以修改 WEB-INFclassescomtonbellerjpivotmondrianresources.properties.但是注意这个文件中内容写成英文没问题,如写成中文的话应该写成unicode,例如023这样的形式. 如果你要去掉这一行的话,修改配置文件和xsl恐怕做不到,我分析了其代码,最终在代码层次上做了修改: 修改的代码为com.tonbeller.jpivot.table.ColumnAxisBuilderImpl: 将其构造函数中的setHierarchyHeader的参数修改为setHierarchyHeader(NO_HEADER);这个函数支持3个参数,我们修改后就不会显示那个标题行了. 问题3:生成图表后自动生成chart表的问题: 我测试生成图表中的中文问题都解决了,但是每次生成chart图时会报UTF编码错误,从错误判断应该是某个文件的编码错误,起初根据错误判断是filter的问题,可是filter那点代码中根本不涉及编码的问题.我将很多配置文件的编码都改了也不行.因为那个英文例子没问题,我查看了JFreechart的一个servlet(org.jfree.chart.servlet.DisplayChart),因为jpviot就是调用这个servlet实现绘图的,分析这个servlet我知道它会在一个临时目录生成png文件,然后交给servlet写到浏览器的响应中去,我找到那个临时目录(tomcattemp),发现里面已经生成了正确的中文图形.从而判断图形生成正确,但是写到浏览器中时出了问题.最后我查看能生成英文图表的那个例子,发觉不仅仅在html中生成图形,而且生成map.而这个map的生成全是在程序中做的,程序生成一个xml文件,通过chart.xsl解析生成map的最终html代码.但是在程序中生成时并没有加入编码设置,因此问题出在生成map这儿. 最终修改代码如下: com.tonbeller.jpivot.chart.ChartComponent: 在render函数中修改如下: String desc="<?xml version="1.0" encoding="gb2312"?>"; String xchart =desc+"n"+ "<xchart>" + writeImageMap(filename, info, false) + "</xchart>"; 这样就为xchart设置了编码. 问题4:修改jfreechart中的默认字体: com.tonbeller.jpivot.chart.ChartComponent中定义了几种字体,但是这几种字体都是英文字体,我将其修改为宋体: 把所有的字体定义都改为"SimSun" 注意到这儿并没有玩,如果你仅仅修改程序,仍旧会出现问题,报错说没有适合"SimSun"的item 同时要修改一个配置文件:WEB-INFjpivotchartchartpropertiesform.xml 在这个配置文件中将SimSun加入其中,形式如下: <listBox1 type="string" modelReference="fontName" label="Title font"> <listItem value="SansSerif" label="SansSerif"/> <listItem value="Serif" label="Serif"/> <listItem value="SimSun" label="SimSun"/> <listItem value="Monospaced" label="Monospaced"/> </listBox1> 以上为我最近的一点心得,我会完善这篇文档,将包含mondrian中schema的书写方法和MDX查询语言,欢迎大家交流   JPivot 是Mondrian的表现层TagLib,一直保持着良好的开发进度。   已经好久没有用了,趁彻底忘记以前,把小小的心得记下来。   1.汉化   1.1 查找所有resources.properties文件,汉化为resources_zh.properties文件   1.2 native2ascii resources_zh.properties resources_zh.properties   1.3 查找WEB-INF/jpivot下的所有xml文件,汉化为xxx_zh.xml    2.架构   JPivot的架构看似另类,但其实都是精明的选择。   2.1 使用XML/ XSLT渲染OLAP报表      JPivot 使用 WCF (Web Component Framework)  ,基于XML/XSLT来渲染Web UI组件。这使它显得十分另类。不过,OLAP报表这种非常复杂但又有规律可循的东西,最适合使用XSLT来渲染。虽然程序员和编辑器都很不喜欢这种Martin Flower口中有点LISP形式的语言,但Transform Engine这时候的确能比Template Engine(Velocity,Freemarker)更高效的处理OLAP报表及其导航系统的显示。    2.2 完全基于JSP+TagLib     JPivot另外一个可能使人不惯的地方是它完全基于taglib而不是大家熟悉的MVC模式。但如果不基于tabLib,基于任何MVC框架都会使其失去通用性,担不起Mondrain唯一表现层的重任,而且,MVC其实不一定需要那些框架(后述)   2.3 典型的流程及模式:        打开JPivot自带的sample,查看index.jsp文件,典型的流程如下:      1,用户发出 testPage.jsp?query=modrain的请求     2,testPage.jsp上的<wcf:include>根据query参数,匹配/WEB-INF/query/下的modrain.jsp来获取数据            3,modrain.jsp上的<jp:mondrianQuery id="query01">查询数据,放入到query01变量中      4,testPage.jsp上的<jp:table id="table01" query="#{query01}"/>根据query01的结果(领域数据) 准备显示OLAP表格所需的数据(显示数据)      5,testPage.jsp上的<wcf:render ref="table01" xslUri="/WEB-INF/jpivot/table/mdxtable.xsl"/>根据table01的结果,使用xsl,渲染出OLAP表格。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服