互联网服务商业智能cognos

做了一个带默认值的日期提示,问题有二

做了两个时间提示。一个是开始时间,一个结束时间。给开始时间一个JS 脚本,默认显示三个月前:


结束时间默认为当前日期,如图:

shijian.jpg



问题1:我通过这两个时间过滤一个交叉表

过滤条件 [**].[时间].[时间].[年].[年 - 全称]<= ?et?
            [**].[时间].[时间].[年].[年 - 全称] >= ?st? 。明明两头都有等号,我过滤的时间都选在2014年,缺不显示2014年的数据,为什么?

问题2:我选择好时间段,点击完成提示按钮,刷新页面。开始时间就会恢复成3个月前,就是JS 的默认值。怎么能让其不没变。
P.S.客户要求初始页面时间提示必须是最近三个月的数据。。。
参与12

11同行回答

Aaron_liuAaron_liu软件架构设计师国际商业机器大连分公司
回复 11# 小宝熊     给你发站内信了显示全部
回复 11# 小宝熊


    给你发站内信了收起
IT咨询服务 · 2014-08-29
浏览787
小宝熊小宝熊软件开发工程师ETL
回复 9# Aaron_liu 版主,我觉得cognosRS页面问题永远解决不完,我按着您的建议建了数据项,把数据项添加到属性列表,我的报表表达式终于是成功的了。IF ( (Today () = [查询1].[结束时间]) and  (_add_months ([查询1].[结束时间],-3)=[查询1].[开始时间] )) &n...显示全部
回复 9# Aaron_liu

版主,我觉得cognosRS页面问题永远解决不完,我按着您的建议建了数据项,把数据项添加到属性列表,我的报表表达式终于是成功的了。

IF ( (Today () = [查询1].[结束时间]) and  (_add_months ([查询1].[结束时间],-3)=[查询1].[开始时间] ))  THEN
    ( 0 )
ELSE
    ( 1 )

但是由于我把数据项添加到属性列表,现在要求是必填项,每次运行都要我给默认值。

但是我运行报表结束时间要动态的显示当前天,开始时间要显示3个月以前的时间,这个。。又不会弄了。。。唉。。收起
互联网服务 · 2014-08-29
浏览905
小宝熊小宝熊软件开发工程师ETL
回复 9# Aaron_liu 版主好思路,我这还是思路太窄了。。。这就去试试。。。显示全部
回复 9# Aaron_liu

版主好思路,我这还是思路太窄了。。。

这就去试试。。。收起
互联网服务 · 2014-08-29
浏览901
Aaron_liuAaron_liu软件架构设计师国际商业机器大连分公司
回复 8# 小宝熊     这可能算个bug,不过我们可以换个途径去实现他,新建数据项,表达式就用类似:?ST? 然后条件块报表表达式来引用这个字段。你可以这么试试。显示全部
回复 8# 小宝熊


    这可能算个bug,不过我们可以换个途径去实现他,新建数据项,表达式就用类似:?ST? 然后条件块报表表达式来引用这个字段。你可以这么试试。收起
IT咨询服务 · 2014-08-28
浏览900
小宝熊小宝熊软件开发工程师ETL
回复 3# Aaron_liu 版主,您说的办法非常好。只是条件块的变量是报表表达式 。报表表达式没有cast。 我试了各种办法,也转换不到报表表达式要求的入参 “时间戳表达式” 。显示全部
回复 3# Aaron_liu

版主,您说的办法非常好。只是条件块的变量是报表表达式 。报表表达式没有cast。 我试了各种办法,也转换不到报表表达式要求的入参 “时间戳表达式” 。收起
互联网服务 · 2014-08-28
浏览893
lyrathlyrath软件开发工程师IBM
回复 1# 小宝熊 第二个问题可以通过在html中引入 st 这个parameter 来做,思路是在初始运行report (这种情况下st 还没有被赋值)时, js 生效。html item 的类型调成 Report Expression, 写成if (ParamDisplayValue('st') is null)then ('...')当用户自助选择起始时间并刷新后...显示全部
回复 1# 小宝熊
第二个问题可以通过在html中引入 st 这个parameter 来做,思路是在初始运行report (这种情况下st 还没有被赋值)时, js 生效。

html item 的类型调成 Report Expression, 写成
if (ParamDisplayValue('st') is null)
then (
''
)

当用户自助选择起始时间并刷新后,因为st里有值了,所以js不会再生效。收起
互联网服务 · 2014-08-22
浏览876
小宝熊小宝熊软件开发工程师ETL
回复 5# 泛型 我什么都没设置,结束时间直接默认为当前时间。开始时间,我就添加了一个HTML控件,JS代码已经写在了上面了。显示全部
回复 5# 泛型

我什么都没设置,结束时间直接默认为当前时间。

开始时间,我就添加了一个HTML控件,JS代码已经写在了上面了。收起
互联网服务 · 2014-08-21
浏览893
泛型泛型其它兴兴贸易
楼主日历的初始值怎么设置的?显示全部

1.png

楼主日历的初始值怎么设置的?收起
IT咨询服务 · 2014-08-21
浏览892
泛型泛型其它兴兴贸易
第一个问题 可能参数没设置好  你把第一个问题解决了 第二个问题或许就业OK了 :lol大侠 你是怎么用js设置日历组件的值的? 求详细介绍显示全部
第一个问题 可能参数没设置好  
你把第一个问题解决了 第二个问题或许就业OK了
:lol大侠 你是怎么用js设置日历组件的值的? 求详细介绍收起
IT咨询服务 · 2014-08-21
浏览899
Aaron_liuAaron_liu软件架构设计师国际商业机器大连分公司
第一个问题 [年 - 全称]显示全部
第一个问题 [年 - 全称]<= 时间格式,这样的过滤条件真的对么,比如:2012年<= 2012-01-01.这样应该有问题吧。
第二个问题。稍微有点棘手 我的方案是用condition block 中文叫条件框吧,用过布尔变量,当?et?<> Currentdate or ?st?<>_add_months(currentdate,-3)
两个框内的控件保持一致,除了一个包含设置前三月的脚本,一个不包括。

语句随手打的不符合语法你再自己修改下。收起
IT咨询服务 · 2014-08-21
浏览883

提问者

小宝熊
软件开发工程师ETL

相关问题

相关资料

问题状态

  • 发布时间:2014-08-21
  • 关注会员:1 人
  • 问题浏览:3915
  • 最近回答:2014-08-29
  • X社区推广