我正在使用App Script创建仪表板。我想创建一个Gannt图表。我看了docuentation here,我有一个问题。我不知道我的Gannt图表的大小。有时会有10行,有时候是4行。所以我想动态创建它。
我成功地动态创建了一个HTML表,但我无法动态创建这个Gannt图表。
我有一个我连接的数据库,我返回一个矩阵,包含每一行,开始日期,结束日期等。 我正在使用scriptlet来调用我的函数:
<? var miles = readMilestones(projectID);
for (var i = 0; i < miles.length; i++) {
?>
data.addRow(
[null, <?= miles[i].name?>, null,
new Date(<?= miles[i].start ?>), new Date(<?= miles[i].end ?>), null, parseFloat(<?= miles[i].perc?>) * 100, null]);
<?
}
?>
我的问题是这个循环只返回矩阵的最后一行。 我使用相同的循环来动态创建一个表,它工作得很好。这是表格的代码,工作正常。
<table>
<tr>
<td>#</td>
<td>Milestone</td>
<td>Start</td>
<td>End</td>
<td>%</td>
</tr>
<?
for (var i = 0; i < miles.length; i++) {
?>
<tr>
<td><?=i+1?></td>
<td><?=miles[i].name?></td>
<td><?=miles[i].start?></td>
<td>
<?
if(miles[i].end == null){
?>
<?= '?' + miles[i].est_end?>
<?
}
else {
?>
<?=miles[i].end?>
<?
}
?>
</td>
<td style="<?=miles[i].color?>"><?=parseFloat(miles[i].perc) * 100 ?></td>
</tr>
<? } ?>
</table>
答案 0 :(得分:0)
我设法找到了问题。显然第一个参数不能为空。我的意思是它可以,但它只返回一行。
解决方案是在第一个参数中加一个值,在我的例子中是'Task Id'。我把当前的迭代器。
<?
for (var i = 0; i < mile.length; i++) {
?>
data.addRow(
[<?=i?>, <?= mile[i].name?>, null,
new Date(<?= mile[i].start ?>), new Date(<?= mile[i].end ?>), null, parseFloat(<?= mile[i].perc?>) * 100, null]
);
<?
}
?>