相信很多COGNOS开发人员看到这个标题就会感觉很轻松,追溯无非是COGNOS自带的一个下钻的功能,但是这里却是固定的条件:

要求1:A报表显示按月的图表B报表显示按日的明细

2:追溯到B的时候B的开始日期控件和结束日期控件还可以随机选择

设置追溯

在报表Address2中添加提示页面,如下图所示

1处是导入xdate.js库

<script type="text/javascript" src="/iisroot/ewelljs/xdate.js"></script>

2处是div的开始

<div style="display:none">

3处是文本框提示,参数名为year 接收Address1传过来的年编码

4处是文本框提示,参数名为month 接收Address1传过来的月编码

5处是日期提示 参数名为begindate,名称为begindate

6处是日期提示 参数名为enddate,名称为enddate

7处是JS处理主体

<script>
function setvalueforriqitishi()//该方法完成在提示页面运行时根据传过来的年份和月份对日期提示(开始/结束)赋值
{
var form=getFormWarpRequest();//得到form表单
var year=form._textEditBoxyear.value;
var month=form._textEditBoxmonth.value;
var day='';
var datestr=year+'/'+month+'/'+day;
var firstDate = new Date(datestr);
//以下脚本需要xdate.js脚本支持
firstDate.setDate(); //第一天
var endDate = new Date(firstDate);
endDate.setMonth(firstDate.getMonth()+);
endDate.setDate();
//alert("第一天:"+new XDate(firstDate).toString('yyyy-MM-dd') +" 最后一天:"+new XDate(endDate).toString('yyyy-MM-dd'));
pickerControlbegindate.setValue(new XDate(firstDate).toString('yyyy-MM-dd'));
//下面三判断如果是当前月,结束日期提示为当前天
var myDate = new Date();
var nowmonth=myDate.getMonth(); //获取当前月份(2位)
if(month!=nowmonth+)
{
pickerControlenddate.setValue(new XDate(endDate).toString('yyyy-MM-dd'));
} promptButtonFinish(); } function init()
{
setvalueforriqitishi(); }
</script> <body onload="init()">
</body> </div>

address2的页面1

8和9处的参数名一定要和5和6处的参数名保持一致,这样才可以赋值

过滤器

cast([门诊挂号].[日期].[年].[Date_SK].[Date_SK],date)
between
?begindate?
and
?enddate?

简单的这么写就好了

原理:虽然Address2处的必须参数为begindate和enddate,Address1处穿过来的是月份,但是我们可以利用传过来的年份和月份加上js脚本对Address2中的日期提示控件进行  赋值,如果是追溯过来的就查找传过来的整月的数据

反之,如果是用户手工在address中选择的随机日期则按照随机日期进行查询

此处的难点是:Address2追溯完成后还需要按照日进行随机查询,而不是按月,导致了按月过滤和按日过滤的冲突,而上面的方法就解决了这个问题

引入XDate.JS 这个小插件,不知道的百度谷歌吧

代码如下:

var firstDate = new Date();

firstDate.setDate(1); //第一天

var endDate = new Date(firstDate);

endDate.setMonth(firstDate.getMonth()+1);

endDate.setDate(0);

alert("第一天:"+new XDate(firstDate).toString('yyyy-MM-dd')+" 最后一天:"+new XDate(endDate).toString('yyyy-MM-dd'));

RS报表从按月图表追溯到按日报表的更多相关文章

  1. ABAP 分货日报表

    *&---------------------------------------------------------------------* *& Report  ZSDR031 ...

  2. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用

    一.水晶报表简介 Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表.水晶报表是业内最专业.功能最强的报表系统,它除了强大的报表功能外.最大的优势是实现了与绝 ...

  3. Silverlight——施工计划日报表(一)

    前一段时间,客户需要一个施工计划报表,要求能够直观的看到各个计划的实施时间,而且能够修改.琢磨着,决定用Silverlight搞定好了.效果如下: 用户可以通过右键菜单的[完成]选项来标记完成,左键选 ...

  4. Silverlight——施工计划日报表(二)

    近来一直在加班,基本上没有个人时间.所以更新不会很即时. 长话短说,先从界面代码开始吧.界面代码很简单,如下所示: <UserControl xmlns:sdk="http://sch ...

  5. 基于mysql的报表工具有哪些?值得推荐的mysql报表工具

    什么是SQL?SQL是结构化查询语言. 什么是数据库?数据库是用来存储数据的. 什么是mysql?Mysql是目前较为流行的数据库. 基于mysql的报表工具有哪些? 其实现在所有的报表工具,基本都支 ...

  6. ActiveReports 报表应用教程 (3)---图表报表

    ActiveReports 的图表控件支持绝大多数常用的二维和三维图表类型,包括XY图表和财务图表.通过使用图表控件的定制功能,如修改坐标轴.图注.图例等,用户可以创建任何其所需要的图表效果.用户还可 ...

  7. MyBatis mysal 日报表,月,年报表的统计

    mysql 按日.周.月.年统计sql语句整理,实现报表统计可视化 原文地址:http://blog.csdn.net/u010543785/article/details/52354957 最近在做 ...

  8. 帆软报表(finereport)图表操作细节

    图表间之间的组件间隔:body-->属性-->布局-->组件间隔 决策报表背景水印:body-->属性-->水印 仪表盘指针/枢纽/背景颜色:样式-->系列 柱形图 ...

  9. RDLC报表系列(六) 多图表-折线图和柱状图

    美好的一天开始了,这篇是RDLC系列的最后一篇文章,我的小项目也已经release,正在测试中. 1.新建demo3.aspx和demo3.rdlc文件 2.往rdlc文件中拖一个图标控件,在弹出的窗 ...

随机推荐

  1. 隐马尔可夫模型(Hidden Markov Model)

    隐马尔可夫模型(Hidden Markov Model) 隐马尔可夫模型(Hidden Markov Model, HMM)是一个重要的机器学习模型.直观地说,它可以解决一类这样的问题:有某样事物存在 ...

  2. aop相关术语

    AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面的编程.并不是全部的AOP框架都是一样的.他们连接点模型的功能可能有强弱之分,有些可以字段,方法,构 ...

  3. 【BZOJ 3812】 3812: 主旋律 (容斥原理**)

    3812: 主旋律 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 235  Solved: 196 Description 响应主旋律的号召,大家决定 ...

  4. 表白 代码 韩梦飞沙-画心.html

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 韩梦飞沙-画心.html <!DOCTYPE html> <html& ...

  5. 我的OI生涯 第六章

    开学了,但是我们并没有像一个正常的高二学生一样坐在教室里接受调研考试的洗礼. 暑假作业这种东西早已被甩在一旁,可以想象回去补文化课时该有多么狼狈. 大王给我们制定了周密的计划,每周两次测试,加上蔡老师 ...

  6. CodeForces - 1016D Vasya And The Matrix

    题面在这里! 很明显二进制每一位都是无关的,所以可以先把原问题简化:给矩阵中的每个位置填入0/1,使得特定行/列有奇数个1,其他行/列有偶数个1. 一个比较好想的方法是对行和列 列出 n+m 个异或方 ...

  7. python一行代码开启http

    python -m SimpleHTTPServer 8000 & 监听8000端口 浏览器用127.0.0.1:8000访问 如果出现no module named SimpleHTTPSe ...

  8. Java并发(八):AbstractQueuedSynchronizer

    先做总结: 1.AbstractQueuedSynchronizer是什么? AbstractQueuedSynchronizer(AQS)这个抽象类,是Java并发包 java.util.concu ...

  9. Redis-Linux安装

    简介 redis是一个开源项目,一种基于hash存储于内存的nosql数据库.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string. ...

  10. [译]Java 程序员应该了解的 10 个面向对象设计原则

    面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorator ...