cognos report同比环比以及默认为当前月分析
现在的需求是按月份分析不同时期的余额数据,.(报表工具:cognos report;建模工具:FM)
-------------------------------------------------------------------------------------------------------------------------------
实现效果:用户第一次点击报表,当前月余额,上一个月余额,去年这个月的余额。
技术点:同比环比,值提示设置默认值
step1:创建提示页面,给值提示设置默认值,自动提交表单,界面如下
html项目都是为了写JS
前面html处代码为 <div style="display:none">,这里不过多描述,就是为了不显示提示页面。
后面html处代码为
<script>
function getcurrentmonth()
{
var dtToday = new Date();
var nowyear=dtToday.getUTCFullYear();
var nowmonth1=dtToday.getMonth()+1;
var nowquarter="";
var nowmonth="";
if(nowmonth1>0&&nowmonth1<4)
{
nowquarter="Q1]";
}
if(nowmonth1>3&&nowmonth1<7)
{
nowquarter="Q2]";
}
if(nowmonth1>6&&nowmonth1<10)
{
nowquarter="Q3]";
}
if(nowmonth1>9&&nowmonth1<13)
{
nowquarter="Q4]";
}
if(nowmonth1>0&&nowmonth1<10)
{
nowmonth=["0",nowmonth1].join("");
}
else
{
nowmonth=nowmonth1;
}
var str1="[Presentation Layer].[报表月份].[报表月份].[月]->[all].[";
var str2= [nowyear,"]"].join("");
var str11= [str1,str2].join("");
var str4= ["[",nowyear].join("");
var str22= [str4,nowquarter].join("");
var str5= ["[",nowyear].join("");
var str6= [nowmonth,"]"].join("");
var str33=[str5,str6].join("");
str7= [str11,"."].join("");
str8= [str7,str22].join("");
str9= [str8,"."].join("");
str10= [str9,str33].join("");
return str10;
}
function init()
{
var form=getFormWarpRequest();
var mylist1= form._oLstChoicesdefaultmonth;//粗体部分为提示页面中值提示的名称,而不是参数名称。
for(var i=0;i<mylist1.length;i++)
{
if(mylist1[i].value==getcurrentmonth())
{
mylist1[i].selected="true";
}
}
promptButtonFinish();
}
</script>
<body onload=" init()">
</body>
</div>
解释:在getcurrentmonth方法中得到当前日期,获取当前年,当前月份,然后做了一系列字符串处理,目的是为了得到这样的值并且返回。
在数据库中,月份的值为201201,2012年1月这样的但是这里为什么要这样呢?这个时候就要看同比环比时候的表达式了。
当前月为基础对象,根据当前月延伸至上一个月,去年同月(当然也可以做当前日,当前季度,当前周,当前年的一系列分析)
当前月:
[Presentation Layer].[报表月份].[报表月份].[月]-> ?defaultmonth?
参数 ?defaultmonth?来自值提示
[Presentation Layer].[报表月份].[报表月份].[月]这个层级是来自
而不是月份code是number类型的对象,此处是memberUniqueName对象,数据格式为
[Presentation Layer].[报表月份].[报表月份].[月]->[all].[年].[年季度].[年月],所以上面的方法中做了一系列的字符串处理
目的就是利用当前日期得到符合当前月份的“【月】”的memberUniqueName值。
OK 在for循环里面遍历select,当值相等时默认selected.
需要注意的是当前月中的参数名称
[Presentation Layer].[报表月份].[报表月份].[月]-> ?defaultmonth?要和值提示的参数名称保持一致。每次选择的时候传递给当前月。
step2:创建报表页面
注意页面中的值提示参数名和提示页面保持一致。
step3:运行
效果1
效果2
效果3:
总结:看效果1与效果2得到2013年7月和2013年6月环比结果正确,看效果1与效果3得到2013年7月和2012年7月同比结果正确,问题得到解决。
cognos report同比环比以及默认为当前月分析的更多相关文章
- 再谈Cognos利用FM模型来做同比环比
很早之前已经讲过 <Cognos利用DMR模型开发同比环比>这篇文章里说的是不利用过滤器,而是采用 except (lastPeriods (-9000,[订单数据分析].[日期维度].[ ...
- cognos report上钻下钻报表处理方法(1)
cognos report开发中追溯行为,也可以称为上钻下钻行为大致遇到了两种情况 第一种:根据当前报表样式在维度范围内上钻下钻. 第二种:给追溯行为指定报表,传递参数. 可能还有其他情况,这里就不 ...
- Hive之同比环比的计算
Hive系列文章 Hive表的基本操作 Hive中的集合数据类型 Hive动态分区详解 hive中orc格式表的数据导入 Java通过jdbc连接hive 通过HiveServer2访问Hive Sp ...
- cognos report利用文本框提示优化日期维度
为了尽量减少手工对日期维度的维护,在日期维度表中年份已经到了2099年,把年份作为下拉框或者月份作为下拉框的时候,选择起来颇为麻烦(当然也可以在此基础之上设置默认为当前月) 如图:提示页面以及html ...
- cognos report在做同比时遇到的问题解决方法
本例就拿简单的一个模型作为测试: 订单中包括日期key,商品类型key 现在要实现每月的订单数,以及去年同期的订单数: step1:新建2个数据项 本月,去年同月 本月: [每日订单数据分析].[日期 ...
- Oracle分析函数/排名函数/位移函数/同比环比
分析函数 作用:分析函数可以在数据中进行分组,然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值.统计函数:MAX(字段名).MIN(字段名).AVG(字段名).SUM(字段名).CO ...
- Cognos Report Studio 链接查询需要注意的地方2
在Report Studio里面用SQL设计报表,查询2,查询3 要链接一般按条件 a1=b1 在选择链接方式需要注意的地方: 默认链接 外部链接 需要设置打开FM,打开报表设计引用的数据包(FM- ...
- MySQL统计同比环比SQL
大体思路: MySQL没有类似oracle方便的统计函数,只能靠自己去硬计算:通过时间字段直接增加年份.月份,然后通过left join关联时间字段去计算环比.同比公式即可 原始表结构: 求同比SQL ...
- 数据可视化之DAX篇(十二)掌握时间智能函数,同比环比各种比,轻松搞定!
https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中 ...
随机推荐
- 微信小程序 --01
微信小程序开发基础 -- 开发前的准备 缘由 1月9日张小龙微信小程序正式上线,因为微信,所以小程序从诞生开始就头戴巨大的光环,很多的团队,公司以及开发的个体都眼巴巴的盯着这个小程序.而那个时候我却在 ...
- Java重写、重载与覆盖
Java继承.重载与重写 一.继承(单继承) 1.利用extends关键字一个方法继承另一个方法,而且只能直接继承一个类. 2.当Sub类和Base类在同一个包时,Sub类继承Base类中的publi ...
- BZOJ.3991.[SDOI2015]寻宝游戏(思路 set)
题目链接 从哪个点出发最短路径都是一样的(最后都要回来). 脑补一下,最短路应该是按照DFS的顺序,依次访问.回溯遍历所有点,然后再回到起点. 即按DFS序排序后,Ans=dis(p1,p2)+dis ...
- spring boot2集成ES详解
一:运行环境 JDK:1.8 ES:5.6.4 二:学习内容 如何构建spring-data-elasticsearch环境? 如何实现常用的增删改查? 如何实现对象嵌套也就是1对多这种关系? 三:J ...
- SQL Server Management Studio 教程一:设置sa用户登录
今天在net项目中添加数据库过程中出现了小问题,就是使用sql server身份验证没登录成功,经过一番调试,终于解决问题. 使用sa账户登录sql server 2008 的方法步骤如下: 1.首先 ...
- Git_Feature分支
软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合 ...
- Effective JavaScript Item 35 使用闭包来保存私有数据
本系列作为EffectiveJavaScript的读书笔记. JavaScript的对象系统从其语法上而言并不鼓舞使用信息隐藏(Information Hiding).由于当使用诸如this.name ...
- java基础学习总结——static关键字
一.static关键字
- MVC在基控制器中实现处理Session的逻辑
当需要跨页面共享信息的时候,Session是首当其冲的选择,最典型的例子就是:在处理登录和购物车逻辑的时候需要用到Session.在MVC中,可以把处理Session的逻辑放在一个泛型基控制器中,但需 ...
- 【postman】postman访问zuul路由网关,发生Could not get any response 的情况
情况如下: zuul配置的自定义过滤器,对所有由zuul进行路由转发的请求进行安全验证,如果请求中包含auth,则成功路由,否则失败. 代码如下: package com.swapping.sprin ...