再谈Cognos报表设计中的维度函数

在报表设计的过程中,客户很多时候会想看同比、环比的数据,很多人会想到利用日期函数在数据库中处理好然后直接在报表拖出来使用,其实这样加大了数据库的压力,当然也是解决问题的一种思路.今天我们就来说一下如何用Cognos维度函数来解决同比环比的问题.

由于时间有限、Cognos维度函数众多,这里我们就举例我们用到的

1:tuple函数

tuple (  成员 { , 成员 } )

根据指定成员(它们必须来自不同的维度)确定单元格位置(交集)。此功能显式包括所有维度中的当前成员,这些维度未在自变量中另行指定。假定未在评估上下文中指定的任何维度的当前成员是该维度的默认成员。可使用“值”功能来获取此单元格的值。

示例:tuple ( [登山装备] , [传真] )

结果:返回“登山装备”销售额(按传真)。

2:currentMember函数

currentMember ( 层级 )

返回迭代过程中该层级的当前成员。如果“层级”不在所计算的表达式的上下文中,那么假定为其默认成员。此函数显示在“卷动和移动平均值”互动式示样报表中。

3:prevMember函数

prevMember ( 成员 )

返回同一级别中直接排在“成员”前面的成员。此函数出现在“GO 数据仓库(分析)”数据包中的“逐年销售额增长”示样报表中。

示例:prevMember ( [户外防护用品] )

结果:个人附件

示例:prevMember ( [2005] )

结果:2004

---------------------------------------------------------下面用具体的例子来做一下实践---------------------------------------------

日期维度

查询1:单独使用prevMember 和currentMember 函数

日期:currentMember ([产品认购分析].[日期].[日期])

前一天:prevMember ([日期])

交叉表结构如下图:

查询2:使用prevMember 和tuple  函数

前一天认购金额:

tuple([认购金额],prevMember(currentMember([产品认购分析].[日期].[日期])))

交叉表结构如下图:

----------------------------------------------------------------运行结果-------------------------------------------------

--分析结果

1:单独使用Member类函数可以单独的得到上一个或者下一个成员,然后固有维度成员+度量结合可以求出

固有维度成员的前一个下一个成员的度量值

2:使用tuple和member函数+度量可以再固有度量的基础上直接的求出上一个或者下一个固有维度成员的度

量值

3:1是先得到成员然后求成员对应的度量值,2是成员和度量值一起采用交叉结果集的形式展现出来

4:可以参考更多的维度函数,日期维度如果具有年-季度-月-周-日的完整结构,就可以更轻松的设计出一些对

比类型的数据报表了

时间: 2024-08-19 13:49:33

再谈Cognos报表设计中的维度函数的相关文章

如何实现报表设计中的高精度报表套打?

在许多行业中票据具有严格的行业规范,格式是无法修改的,一旦格式有所改动,票据数据就会失效无效.因此通常情况下,我们会在预先设计好格式的报表的打印版中,手动填写数据信息,如常见的各类账本,报销单等填写数据. 单张票据手动填写是没有任何问题的,而随着办公自动化,大量数据都需要电子化处理,不仅高效还便于保存,不易出错.在票据成为常规办公操作时,手动填写不仅无法满足而且非常低效,又因为票据的格式是无法修改的,传统的报表工具通常是用测量的方法确定数据区域的位置,来设计报表.如此一来,制作一张票据打印的报表

从游戏演进的角度谈近期游戏设计中的10大趋势

转自:http://gamerboom.com/archives/95163 与所有艺术形式一样,电子游戏也会随着时间的推移而演变并在这个过程中受到各种趋势的影响.当然,新的趋势和概念也会不断涌现. 在本篇文章中,我列举出了近几年最有趣/最流行的10种趋势. 趋势一:全民游戏 游戏设计中最主要的趋势是“扩大可访问性”.任天堂Wii和DS的巨大成功再加上休闲游戏的兴起,使得电子游戏在公众意识中迅速膨胀,因此也涌入了一大批新玩家. 目前市面上的许多热门游戏都带有新手教程,玩法简单的游戏也再次流行了起

再谈Cognos利用FM模型来做同比环比

很早之前已经讲过 <Cognos利用DMR模型开发同比环比>这篇文章里说的是不利用过滤器,而是采用 except (lastPeriods (-9000,[订单数据分析].[日期维度].[日期维度].[日]->?bdate?),lastPeriods (-9000,nextMember ([订单数据分析].[日期维度].[日期维度].[日]->?edate?)))+特殊函数的方式来实现的,下面我们就来采用过滤器来实现一些同比环比. 首先,在数据库设计好标准日期维度(年-季度-月-日

报表设计中参数、脚本的使用以及生成系统时间

我门要实现参数提交的时候根据参数的值来进行排序,并且利用报表的脚本生成系统时间,不用通过业务表传值进来设置当前系统时间.实现效果图: 添加参数:注意参数名称我这里是默认的.只是修改了显示名称. 脚本截图,写在哪个位置,如图红色方框 具体脚本代码如下: private void xtraReport1_ParametersRequestSubmit(object sender, DevExpress.XtraReports.Parameters.ParametersRequestEventArgs

报表开发中通用group_concat函数的实现方法

使用Jasper或BIRT等报表工具时,常会碰到一些非常规的统计,用报表工具本身或SQL都难以处理,如在MSSQL/Oracle中,想展现类似group_concat函数计算结果的报表. 集算器具有结构化强计算引擎,集成简单,可以协助报表工具方便地实现此类需求.下面以MSSQL为例,来说明通用group_concat函数的实现过程. MSSQL的表Table1有四个字段,字段Col1.Col2.Col3是分组字段,Col4是汇总字段,部分数据如下: 报表工具需要的数据源如下: 集算器代码: A1

系统从很老的V12.4.X升级到V15.0.4中个别报表构建中出现的错误及解决办法

今天在一个二次开发用户中发现,系统是从比较老的版本升级上来的.用户想修改一个报表的时候,提示有字段已经在datatable中存在. 经过排查:该报表所用到的业务表,在内容构建和预览的时候都正常.考虑到新版本增加了业务表的字段设置,所以专门点开这个业务表的"字段设置"查看,发现有个别字段中的字段名是空值. 把空值加上,保存后.再到报表设计中去查看,即可正常设计和使用该报表.目前版本可以按照这个进行调整.后续我们也将检查和测试. 原文地址:http://bbs.delit.cn/threa

再谈登陆窗体的测试用例设计要点

再谈登陆窗体的测试用例设计要点 前面我已写过一篇关于登陆窗体的测试用例的文章,自我感觉总有一些不足之处.这篇文章主要是对上篇文章的补充吧 上篇博客的地址:http://blog.csdn.net/haiyan_cf/article/details/41308949 一.登陆界面图展示: 一.从测试用例设计方法的角度考虑: (1)等价类分析法:分为有效等价类和无效等价类. 有效等价类,输入正确的用户名和密码,验证是否能登陆成功. 无效等价类,输入错误的用户名或密码,登陆时是不是能给出合理的提示信息

Unity教程之再谈Unity中的优化技术

这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体 这一步主要是为了针对性能瓶颈中的”顶点处理“一项.这里的几何体就是指组成场景中对象的网格结构. 3D游戏制作都由模型制作开始.而在建模时,有一条我们需要记住:尽可能减少模型中三角形的数目,一些对于模型没有影响.或是肉眼非常难察觉到区别的顶点都要尽可能去掉.例如在下面左图中,正方体内部很多顶点都是不需要的,而把这个模型导入到Unity里就会是

【tool】报表测试中测试数据设计

在报表测试用例设计中,测试数据是关键.正如Jackie在<进销存系统中的报表测试>中所言,如果希望更有效.更高质量地完成报表测试,就要重视并增加对于数据准备的关注.其实,测试数据也是为测试场景服务的,一个或者一组的测试数据往往是为了验证在某个测试场景下报表是否 能正确的展现统计值.归根结底,测试场景的设计才是关键的关键.在之前的报表分析后,测试用例的基本框架已经完成.接下来我们需要在这个框架上,细化和补 充场景设计,然后通过场景,设计出对应的测试数据. 对于测试数据的设计,我将其粗略地分为3大