2016-03-03 89 views
0

我正在使用應用程序腳本創建儀表板。我想創建一個Gannt圖表。我看着docuentation here,我有一個問題。我不知道我的甘特圖的大小。有時會有10行,有時是4行。所以我想動態創建它。如何動態創建Google gannt圖表?

我成功地動態創建了一個HTML表格,但是我無法動態創建這個Gannt圖表。

我有我連接一個數據庫,我返回一個矩陣中的每一行,開始日期,結束日期等 我使用小腳本調用我的函數是這樣的:

<? 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

不熟悉'appscript',但我沒有看到一個問題的循環,有沒有更多可以分享?如數據樣本或如何獲得數據......? – WhiteHat

+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] 
    ); 

    <? 
    } 
    ?>