Cognos中的Javascript表,使用列表作为数据

Cognos中的Javascript表,使用列表作为数据,javascript,cognos-10,Javascript,Cognos 10,我们有Javascript,它将从代码中的数据表生成图表 我们希望使用Cognos自动化数据提取过程。本质上,我们希望使用ReportStudio中的列表来填充下面Javascript代码的表部分 我们尝试在列表之前和之后添加一个HTML项目,该列表的代码在表之前和之后,页面填充为空白 任何帮助都将不胜感激。 多谢各位 <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js">&

我们有Javascript,它将从代码中的数据表生成图表

我们希望使用Cognos自动化数据提取过程。本质上,我们希望使用ReportStudio中的列表来填充下面Javascript代码的表部分

我们尝试在列表之前和之后添加一个HTML项目,该列表的代码在表之前和之后,页面填充为空白

任何帮助都将不胜感激。 多谢各位

<script type="text/javascript"     src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {

var container = document.getElementById('example5.1');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'Room' });
dataTable.addColumn({ type: 'string', id: 'Name' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });
dataTable.addRows([

['Job1', '',  new Date(0,0,0,18,0,0), new Date(0,0,0,18,0,1) ],
['Job2', '',  new Date(0,0,0,18,3,0), new Date(0,0,0,18,3,7) ],
['Job3', '',  new Date(0,0,0,17,30,0), new Date(0,0,0,18,0,39) ],
['Job4', '',  new Date(0,0,0,18,0,0), new Date(0,0,0,18,10,19) ],
['Job5', '',  new Date(0,0,0,18,0,0), new Date(0,0,0,18,0,22) ]


  ]);

var options = {
  timeline: { colorByRowLabel: true }
};

chart.draw(dataTable, options);
  }

</script>

<div id="example5.1" style="height: 500px;" style="width: 100px;"></div>

load(“当前”{packages:[“timeline”]});
google.charts.setOnLoadCallback(drawChart);
函数绘图图(){
var container=document.getElementById('example5.1');
var chart=newgoogle.visualization.Timeline(容器);
var dataTable=new google.visualization.dataTable();
addColumn({type:'string',id:'Room'});
addColumn({type:'string',id:'Name'});
addColumn({type:'date',id:'Start'});
addColumn({type:'date',id:'End'});
dataTable.addRows([
['Job1','',新日期(0,0,0,18,0,0),新日期(0,0,0,18,0,1)],
['Job2','',新日期(0,0,0,18,3,0),新日期(0,0,0,18,3,7)],
['Job3','',新日期(0,0,0,17,30,0),新日期(0,0,0,18,0,39)],
['Job4','',新日期(0,0,0,18,0,0),新日期(0,0,0,18,10,19)],
['Job5','',新日期(0,0,0,18,0,0),新日期(0,0,0,18,0,22)]
]);
变量选项={
时间线:{colorByRowLabel:true}
};
图表绘制(数据表、选项);
}

我们找到了解决方法

首先,我们必须将Javascript放在单例中的HTML项中。一旦带有JS的HTML项在单例中,我们就能够在运行Cognos报告时显示图表(带有静态表)

因为我们希望JS中的表从Cognos查询中的数据运行,所以我们从HTML中删除了现有的JS,并将JS的第一部分放在一个单例中的HTML项中

JS的第一部分:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {

var container = document.getElementById('example5.1');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'Room' });
dataTable.addColumn({ type: 'string', id: 'Name' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });
dataTable.addRows([
因为除了最后一行之外,每一行的末尾都需要一个逗号,所以我们使用了下面的方法

1) [RowNum]:创建一个数据项,使用运行计数([YourConcatatedDataItem])为每行指定一个数字

2) [MaxRowNum]:创建另一个数据项,以使用最大值([RowNumberDataItem]用于报表)获取报表的最大行号。将两个聚合函数都设置为自动

3) [最终数据项]:创建新的数据项。在这个新数据项中,我们将使每一行的末尾都有一个逗号,最后一行除外。当[RowNum][MaxRowNum]然后[YourConcatatedDataItem]+',否则[YourConcatatedDataItem]结束时使用此用例

回到报告中,您将希望在转发器的右侧添加另一个HTML项。在这个HTML项目中,您将把JS的最后一部分放在其中

  ]);

var options = {
  timeline: { colorByRowLabel: true }
};

chart.draw(dataTable, options);
  }

</script>

<div id="example5.1" style="height: 500px;" style="width: 100px;"></div>
]);
变量选项={
时间线:{colorByRowLabel:true}
};
图表绘制(数据表、选项);
}
  ]);

var options = {
  timeline: { colorByRowLabel: true }
};

chart.draw(dataTable, options);
  }

</script>

<div id="example5.1" style="height: 500px;" style="width: 100px;"></div>