BIEE 11g 使用叙述视图实现复杂中国式表格一例

32 篇文章 0 订阅
13 篇文章 1 订阅


今天有朋友问到如何实现如下表格今天有朋友问到如何实现如下表格今天有朋友问到如何实现如下表格



比较简单的方法就是使用叙述视图来自己编写html代码将这个表格画出来,这是第一步。

第二步是如何实现“小计行”和“ERP调节后余额”这两行

我想的办法是使用JS来动态计算表格的值。不过这样一来就要求表格必须在页面上完全显示出来,不能分页。(因为是使用的JS来遍历页面上的内容)


在实现的过程中,有许多小细节需要考虑,比如千分位的显示。文字的竖排等。具体大家可以直接参考我的代码,并在此基础上做出调整


首先新建如下字段的报表



注意,一共有6列


然后新建叙述视图,在前缀中加入如下代码:

  <style> 
     #cux_data_table001{border-right:1px solid #F00;border-bottom:1px solid #F00} 
 #cux_data_table001 td{border-left:1px solid #F00;border-top:1px solid #F00} 
	 

	 
	 .one {    
    width: 20px;    
    margin: 0 auto;    
    line-height: 24px;    
}  
.two {    
    width: 15px;    
    margin: 0 auto;    
    line-height: 24px;    
    word-wrap: break-word;/*英文的时候需要加上这句,自动换行*/    
}


    </style> 


 
<script type="text/javascript">

   
 function toThousands(num) {
     return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
 };

    var calcTotal=function(table,column){//合计,表格对象,对哪一列进行合计,第一列从0开始
        var trs=table.getElementsByTagName('tr');
        var end=trs.length-1;//忽略最后合计的一行
        var total=0;
        for(var i=0;i<end;i++){
			if("cux_value_rows"!=trs[i].className)
			    continue;
            var td=trs[i].getElementsByTagName('td')[column];
            var t=parseFloat(td.innerHTML.replace(',',''));
            if(t)total+=t;
        }
        
		return total;
    };


	function setValue(tid,value){
		var td=document.getElementById(tid);
		td.innerHTML=value;
	}
   
</script>
<table id ="cux_data_table001">
<tr>
  <td>品种</td>
  <td colspan="3">ERP系统出库数量</td>
  <td colspan="3">0.0</td>
 </tr>
 <tr>
  <td rowspan="20"><div class="one">93号汽油</div><div class="two">︵</di><div  class="one">国标</div><div  class="two">︶</div></td>
  <td colspan="6">减:ERP系统已出配系统未出</td>
 </tr>
 
<tr>
  <td>日期</td>
  <td>数量</td>
  <td>系统单号</td>
  <td>差异原因</td>
  <td>对应盘点表类别</td>
  <td>差异处理时间</td>

 </tr>


在叙述中加入如下代码:

  <tr class="cux_value_rows">
  <td>@1</td>
  <td>@2</td>
  <td>@3</td>
  <td>@4</td>
  <td>@5</td>
  <td>@6</td>
 </tr>



在后缀中加入如下代码:

 <tr>
  <td>小计:</td>
  <td id="cux_st_100"><script>setValue('cux_st_100',calcTotal(document.getElementById('cux_data_table001'),1).toFixed(2))</script></td>
  <td id="cux_st_101"><script>setValue('cux_st_101',toThousands(calcTotal(document.getElementById('cux_data_table001'),2)))</script></td>
  <td id="cux_st_102"><script>setValue('cux_st_102',calcTotal(document.getElementById('cux_data_table001'),3))</script></td>
  <td id="cux_st_103"><script>setValue('cux_st_103',calcTotal(document.getElementById('cux_data_table001'),4))</script></td>
  <td id="cux_st_104"><script>setValue('cux_st_104',calcTotal(document.getElementById('cux_data_table001'),5))</script></td>
 </tr>
 <tr>
 <td  colspan="3">ERP调节后余额</td>
 <td id="cux_st_111"><script>setValue('cux_st_111',calcTotal(document.getElementById('cux_data_table001'),3))</script></td>
  <td id="cux_st_112"><script>setValue('cux_st_112',calcTotal(document.getElementById('cux_data_table001'),4))</script></td>
   <td id="cux_st_113"><script>setValue('cux_st_113',calcTotal(document.getElementById('cux_data_table001'),5))</script></td>
 </tr>


</table>



最终效果如下图:


具体格式大家自己回去慢慢调整吧


注:该方案在12c中使用excel导出会有格式问题


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容安排 Oracle BIEE+ & BI SE1 —统一的基础平台 Essbase —绩效管理的基石 Oracle BIEE Demo Oracle BI 产品 Oracle商务智能套件企业版Plus 统一的商务智能基础架构 完善的洞察传递功能 旨在普及智能 完善的洞察传递功能 旨在普及智能 Oracle BIEE+ — 普及商务智能应用 获得最大效益,使每个人都能得到洞察力 交互式信息板中的指导性分析 动态、事件驱动的分析驱动着正确行为 简报 “Pack & Go”信息板 通过 Oracle Delivers 察觉和响应 实时的预测性智能 离线分析 具备所有功能的离线客户端 Excel和PowerPoint的高级集成 Oracle商务智能套件企业版 Cisco Systems 的企业商务智能 无处不在的智能 Oracle BIEE+ –普及商务智能应用 Oracle BIEE Architecture Oracle BI Server 功能强大的跨源可伸缩智能 简化的业务模型视图 高级计算和集成引擎 智能请求生成和优化的分布式数据访问 关键任务可伸缩性和性能 所有 OBIEE 表示服务的基础 通用企业信息模型 支持一致性、安全性、重用性、灵活性 Oracle BI Server 充分利用各类数据库本身的功能 Oracle BI Server 对于不同数据源重写功能– 能提供优化的各种数据源本身最优的SQL 经过证明的可伸缩性和灵活性 针对伸缩和性能而构建 优化的原生 SQL 功能传送 并行处理 集群 智能缓存 连接池 支持广泛的数据源 直接支持物理数据源 充分利用现有的 IT 投资 与异构系统的“可热插拔”集成 Oracle商务智能 –普及商务智能应用 Oracle BI 应用产品 基于 OBIEE 构建的预建分析应用程序 Oracle BI Standard Edition One Main BI Product for SMB: OBI SE One Complete BI System in a Box 内容安排 Oracle BIEE+ & BI SE1 —统一的基础平台 Essbase —绩效管理的基石 Oracle BIEE Demo Hyperion Essbase 市场领导的OLAP技术—#1 完全的多线程/并行处理引擎 登录、加载、计算、查询、导出 支持MOLAP、HOLAP 全面的、可扩展的函数库,基于Java的整合方式 分区技术 分摊、内置财务功能和多用户回写支持 提供控制到单元格级的权限管理 跨平台 – Windows NT到IBM OS390 强大的MS OFFICE集成功能 功能强大的计算引擎 由OLAP引擎基于立方体中所定义的层次对模型进行统计计算, 提供函数模版,随时粘贴使用 内嵌250个丰富的数学计算、财务计算和统计计算函数 内置了Expense Reporting、期初值、期末值、期间均值、2次计算、YTD、QTD等功能 提供专业的币种转换模型 支持过程化计算脚本,满足根据复杂的业务逻辑自定义计算规则,可单独计算立方体的任何块区 计算脚本可分顺序计算(serial calc)和并行计算(parallel calc)两种 顺序计算:按计算脚本中的顺序执行 并行计算:一个计算任务分成多个子任务,在多CPU上并行执行 Analytic Services先进的分析平台 满足全方位的分析应用 Essbase 创造了OLAP基准测试的记录! 内容安排 Oracle BIEE+ & BI SE1 —统一的基础平台 Essbase —绩效管理的基石 Oracle BIEE Demo

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值