IT分销/经销商业智能

动态默认值的设置

需求:在报表页面添加一个值提示以显示月份,值提示显示时去掉两项,而且第一次运行报表时显示最近这个月的数据。做法:在值提示后面添加html项,代码如下:    var form = getFormWarpRequest();    var listA = form._oLstChoicesXYZ;//XYZ值提示名  &nb...显示全部
需求:
在报表页面添加一个值提示以显示月份,值提示显示时去掉两项,而且第一次运行报表时显示最近这个月的数据。
做法:
在值提示后面添加html项,代码如下:
    var form = getFormWarpRequest();
    var listA = form._oLstChoicesXYZ;//XYZ值提示名
        listA.remove(1);
        listA.remove(0);
        listA.removeAttribute("hasLabel");
        listA.options[listA.length-1].selected = true;  
   canSubmitPrompt();
运行结果:值提示显示正确,但第一次行运报表时数据没有过滤
   后来在代码后面加上:promptButtonFinish();//报表连续运行两次,第二次显示正确
请问如何让报表第一次运行时就使用默认值过滤数据?收起
参与24

查看其它 22 个回答eagleVShorse的回答

eagleVShorseeagleVShorse软件开发工程师汉端科技
说一下个人理解:
1、canSubmitPrompt()函数功能:这个函数是重新检查一下页面控件的必选情况,大家都知道,如果一个控件的属性设为必选的话,控件下方会有一条红虚线。但有时候用JS设置必选控件的时候,可能出现已经赋了值了。但控件下方还是出现红虚线,导致完成按钮不可用。这时就需要用这个函数来检查一下,看看此时可不可提交页面。
2、使用promptAction('finish')或PromptButtonFinish()函数报错:这两个函数都是模拟页面的提交动作(就是按“完成”按钮),关于会出现“次要请求失败”,IBM帮助文档有详细解释。解决方法就是设置一个延时的提交就OK了,比如window.setTimeout(PromptButtonFinish(),1000);---意思是1s后提交页面,就不会出现报错了。
3、关于你这个需求,我有点不太明白。但我觉得你既然默认值都能设置了。所以衍生出来的问题应该是有办法解决的。
以上只是个人经验理解,仅供参考。多交流和指正。。。
互联网服务 · 2011-02-28
浏览918

回答者

eagleVShorse
软件开发工程师汉端科技

eagleVShorse 最近回答过的问题

回答状态

  • 发布时间:2011-02-28
  • 关注会员:1 人
  • 回答浏览:918
  • X社区推广