我从网站上获得了下面的javascript,它基于单选按钮值提示中的选择显示和隐藏了日期提示。

<script type="text/javascript">
var inputs = document.getElementsByTagName("input");
var list_box = new Array();

/****Identify Radio Buttons and load them into an array****/
var radio_buttons = new Array();
j=0;

for(i=0;i<inputs.length;i++)
{
if(inputs[i].type=='radio')
  {
    radio_buttons[j] = inputs[i];
    j++;
  }
}

/****Set the onclick event of each radio button option to trigger our custom function****/
radio_buttons[0].setAttribute("onclick",function(){ToggleDate();});
radio_buttons[1].setAttribute("onclick",function(){ToggleDate();});
radio_buttons[2].setAttribute("onclick",function(){ToggleDate();});


/****Create a handle for date prompt****/
var prompt = document.getElementById("date_prompts").childNodes[0];

function ToggleDate()
{
if(radio_buttons[0].checked)
  {
  /**** First options (in our case "Custom") is selected.****
   **** Date Prompt will be Shown or Enabled.            ****/

  document.getElementById("date_prompts").style.display = '';  //show
  // prompt.disabled = '';   //enable

  canSubmitPrompt();
  }
else
  {
  /**** Second options (in our case "Yesterday") is selected.****
   **** Date Prompt will be Hidden or Disabled.              ****/

  document.getElementById("date_prompts").style.display = 'none';   //hide
  //prompt.disabled = 'true';   //disable

  canSubmitPrompt();
  }
}
</script>


虽然我们一直在使用Cognos 10.2.2,但此代码运行良好(与跨越日期提示的其他几个html项目一起使用)。现在,我们正在升级到Cognos 11.0.11,而我在新环境中测试报告时,发现该代码不再起作用,并且无论选择哪种选择,都显示日期提示。单选按钮。

请有人给我一些有关这里可能发生的事情的提示,或者更好的告诉我如何解决此问题。

在Cognos 11中创建新报表并分别添加元素时,会出现以下错误消息...

HTML报告输出格式不正确。如果您的报告使用“ HTML项”元素,请确保它们产生格式正确的HTML。

原因:名称包含无效字符。

网址:
线:274
字符:24
资源:
对于(i = 0; i

最佳答案

Cognos随Cognos 10.2发布了JavaScript API,极大地简化了您在此处所做的工作。此外,保证在两个版本之间都受支持。

这是针对Cognos JavaScript API编写的相同功能:

假设:


有一个配置为单选按钮组的Cognos Select提示,其具有Name属性'radio_buttons',提供了三个单独的值(1、2和3)的选择
在带有id属性'date_prompts'的范围中包装了一个日期提示,当选择第一个单选按钮时应显示该日期,但如果选择了其他两个则不显示




var report = cognos.Report.getReport('_THIS_'); //Get report reference
var radioprompt = report.prompt.getControlByName('radio_buttons'); //Get prompt reference
var datespan = document.getElementById('date_prompts'); //Get span to hide/unhide

radioprompt.setValidator(validateRadio); //Assign a validation function

function validateRadio(values) {
     var result = true;
     if (values && values.length > 0) { //Make sure prompt has value
          if (values[0].use == '1') {  //Check if first radio button selected
               datespan.style.display = ''; //Show
          } else {
               datespan.style.display = 'none'; //Hide
          }
     }
     return result; //Return result to Cognos. Always true in this case.
}


您可以在此处找到有关Cognos JavaScript API的更多信息:Cognos 11 JavaScript API Documentation

关于javascript - Cognos 11.0.11-Javascript显示/隐藏日期提示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50738370/

10-12 03:35