`

Cognos中promptValue合法性判断使用的js函数及CSS类

阅读更多
在用Cognos8做报表是遇到的问题:
需要对输入的提示值进行合法性校验,当值非法时,弹出对话框提示并阻止调教报表,需要获取Cognos控件的值,进行判断,例子是两个日期间隔的判断,通过在报表中添加‘HTML项目’后添加js函数实现:
 <button id = "a" onClick = "javascript: validDate();" class='bp'>查询</button>
<script language='javascript'>
function diffDate(v_begin,v_end)
{
   var diff =0;
   beg = new Date();   
   end = new Date();
   var tmp = new Array(3);
   tmp  = v_begin.split('-');
   beg.setYear(tmp[0]);
   beg.setMonth(tmp[1]);
   beg.setDate(tmp[2]);
   tmp  = v_end.split('-');
   end.setYear(tmp[0]);
   end.setMonth(tmp[1]);
   end.setDate(tmp[2]);
   diff = (end-beg)/(1000*60*60*24);//单位:毫秒转换为天
   return diff;
}
function validDate(){
   var form = getFormWarpRequest();
   var date_end = form.txtDate_DateEnd.value;  //_DateEnd为Cognos中控件的名称,txtDate_ 为控件前缀
   var date_beg = form.txtDate_DateBeg.value;
   var span=diffDate(date_beg ,date_end );
   if(span>15)
    {alert('日期间隔不得超过15天!');
     return false;}
   else if(span<0){
   alert('开始日期应小于结束日期!');
   return false;} 
  else{  
   promptButtonFinish();
   }
}

</script>

因为原有的提示按钮不提供参数合法性判断,因此使用了标准的按钮,为了和报表的风格保持一致,需要查找报表的相应控件使用的CSS类。
Cognos中CSS文件的存放地址:
/cognos/c8/reportstyles/default_layout.css
/cognos/c8/reportstyles/GlobalReportStyles.css
提示按钮的CSS类在GlobalReportStyles.css中为bp。
提示按钮对应的函数:
完成-->promptButtonFinish();
取消-->promptButtonCancel();
下一步->promptButtonNext();
需要注意的是‘重新提示’没有对应的函数,查看了些外国的资料都提到了没有找到该函数;
同时在js中引用Cognos控件时需要知道控件的前缀:
文本提示: _textEditorBox
值提示: _oLstChoices
日期提示:txtDate
在操作控件前首先要获取表单对象:
var form = getFormWarpRequest();
    
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics