我们都知道Web Intelligence具有高级的分析功能,是一个非常灵活的报表工具。在这篇文章里,我会演示一个使用Webi实现动态选择度量对象的方案。首先解释一下什么是”动态选择度量”:例如我们有多个度量对象,包括销售数量,销售收入,折扣数量,目标销售输入等,用户想动态的选择哪些度量在报表上显示,哪些不显示。这个业务需求的背景是,有些报表的度量太多,比如今年销售金额,去年销售金额,增长额,增长率等等,如果报表显示所有度量,那么报表也许会看起来太臃肿且不方便使用。所以用户想选择性的查看他关注的那几个度量。

通过Webi强大的交互功能,用户可以拖拽维度和设定格式,但对于那些连Excel都不太会的用户,我们需要更简单的交互方式。所以我们创建一个简单的格式化报表,通过简单的交互界面,复选框,来选择你想要看到的维度。下面是报表的的示例,用户通过在左边的面板中选择维度,右面的报表区域中的维度会相应的隐藏或显示:

使用了如下技术来实现以上效果:
1.         Webi交叉表
2.         Webi输入控件(XI 3.1 SP2之后的新功能)
3.         Universe 派生表
通过以下简单的步骤可以完成上面的示例报表:
1.         通过eFashion的连接建立一个简单的universe,添加一个”measure_names”的派生表,SQL语句如下:
select distinct ‘Sales Revenue’ as mname from outlet_lookup
union
select distinct ‘Sales Quantity’ from outlet_lookup
union
select distinct ‘Margin’ from outlet_lookup
2. 基于派生表中唯一的那个字段,创建一个维度对象,universe结构如下所示:

3.使用此universe创建一个webi报表,使用如下对象:State,Measure Name,Margin,Sales Revenue和Sales Quantity。注意universe中的派生表并没有和其他表进行连接,因此此查询将会产生一个笛卡尔积的结果,这正是我们所需要的。
4. 查询结果如下:

5.         创建一个报表变量”Measure Value”定义如下:、
=If([Measure Name]=”Margin”) Then [Margin] ElseIf([Measure Name]=”Sales Quantity”) Then [Sales Quantity] Else [Sales Revenue]
6.         创建一个交叉表,把state对象作为行,Measure Name作为列,并将变量Measure Value放入单元格中。
7.         基于Measure Name创建一个输入控件,并选择复选框作为输入控件类型。

大功告成!现在你可以通过更为直观的界面来选择这些度量的显示,而不再需要拖拽。对于生产环境,可以把派生表换成物理表以提高效率。

【SAP BO】【WEBI】【转】Webi实现动态选择度量的更多相关文章

  1. SAP BO WebI 如何连接webi server folder下面的EXCEL文件作为数据源

    昨天做Webi Report,需要连接一个在Webi Server Folder下面的EXCEL文件作为数据源,然后再去生成相应的报表,找了半天才找到可以连接Webi Server Folder的EX ...

  2. 【BO】SAP BO相关问题汇总贴

    本文将以往写过的关于SAP BO相关问题的帖子汇总了一下,方便寻找 #1 为WEBI报表添加自定义字体font #2 WEBI文件打开时提示Illegal access错误 #3 安装BO服务器时,o ...

  3. php使用post动态选择头像和js事件动态改变头像

    <html> <head> <meta http-equit="Content-type" content="text/html" ...

  4. Java项目集成SAP BO

    SAP BO报表查看需要登录SAP BO系统,为了方便公司希望将BO报表集成到OA系统中,所以参考网上资料加上与SAP BO的顾问咨询整理出一套通过Java来集成SAP BO的功能. SAPBO中的报 ...

  5. ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了

    ExpandoObject与DynamicObject的使用   using ImpromptuInterface; using System; using System.Dynamic; names ...

  6. 【Android】8.2 动态选择和设置主题

    分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 除了通过Theme指定主题外,还可以在程序运行时动态指定并应用主题. 二.示例-ch0802ThemeDemo 1 ...

  7. AbstractRoutingDataSource动态选择数据源

    当我们项目变大后,有时候需要多个数据源,接下来我们讲一种能等动态切换数据源的例子. 盗一下图: 单数据源的场景(一般的Web项目工程这样配置进行处理,就已经比较能够满足我们的业务需求) 多数据源多Se ...

  8. PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版)

    PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版) 先看流程图: 大概介绍一下: 版本选择使用jenkins 中的 git parameter 插件实现 回滚方式 ...

  9. 【BO】为WEBI报表添加自定义字体font

    本篇主要讲解如何为sap business objects 的web intelligence报表组件新增字体.因为系统默认预设的字体对中文而言实在是太丑了,有的字体特喵的直接把中文变成方框框了! 一 ...

随机推荐

  1. MongoDB csv文件导入导出

    1.导出到csv文件: 2.从csv导入: 数据经过csv导出导入,有一个非常隐蔽的问题,编写代码时需要注意: 先导入一条数据: 其中Price是double类型: 然后我把该条记录导出到Demo.c ...

  2. NYOJ题目1080年龄排序

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtMAAAJVCAIAAACTf+6jAAAgAElEQVR4nO3dO1Lj3NbG8W8Szj0QYg ...

  3. 将前台json对象传入java后台

    前台json格式的数据如何传入后台 1. 将要传入后台的数据组装成JSON格式的字符串: var jsonStr = [{'name':'jim' , 'age':20} , {'name':'kin ...

  4. CLR via C#(15)--String,熟悉而又陌生

    好久没写文章了,再拿起这本书,学习加分享,乐趣无穷啊.这两天看了写关于字符串的知识,从学写代码的时候开始,我们就基本天天跟String打交道,对它再熟悉不过了.但是仔细看看,还是有一种拨开云雾的感觉, ...

  5. Ubuntu下安装Python3.4

    转自:http://blog.sina.com.cn/s/blog_7cdaf8b60102vf2b.html 1. 通过命令行安装Python3.4,执行命令:sudo apt-get instal ...

  6. 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程

    在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...

  7. 图结构练习——最小生成树(prim算法(普里姆))

      图结构练习——最小生成树 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  有n个城市,其中有些城市之间可以修建公路,修建不同 ...

  8. struts拦截器实现原理

    图1: 上1来源于Struts2官方站点,是Struts 2 的整体结构. 一个请求在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请 ...

  9. golang基础知识之encoding/json package

    golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...

  10. 安卓app设计规范整理和Android APP设计篇(转)

    随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持 ...