Cognos中的Javascript表,使用列表作为数据
我们有Javascript,它将从代码中的数据表生成图表 我们希望使用Cognos自动化数据提取过程。本质上,我们希望使用ReportStudio中的列表来填充下面Javascript代码的表部分 我们尝试在列表之前和之后添加一个HTML项目,该列表的代码在表之前和之后,页面填充为空白 任何帮助都将不胜感激。 多谢各位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">&
<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>