2016-11-09 11 views
0

私はすべての従業員のためのアイテムリストを持つGoogleフォームを持っています。私はMySQLのテーブルからこのリストに値を設定しています。私は、Googleフォームが開かれるたびに更新された従業員リストでフォームを更新しようとしています。オープンイベントトリガーがありますが、何らかの理由でリストが更新されません。私にお知らせください。Googleフォームのアイテムリストを更新するonOpen

function onOpen(){ 
    var form = FormApp.openById('239jelkwpeowppd-3843ikeifd89wered'); 

    var conn = mySQL(); 
    var itemList = getEmpList(conn); 

    var item = form.getTitle('Approver:'); 
    item.setChoiceValues(itemList); 
    } 

    function getEmpList(conn){ 
    var sql = conn.createStatement(); 
    var ds = sql.executeQuery('SELECT empNAME FROM emp'); 
    var columns = ds.getMetaData().getColumnCount(); 
    var list=[]; 
    while (ds.next()) { 
     var rowString = ''; 
     for (var col = 0; col < columns; col++) { 
     rowString += ds.getString(col + 1) + '\t'; 
     list.push(rowString); 
     } 
    } 
    return list; 
    } 

    function mySQL(){ 
    var dbConn = Jdbc.getConnection("jdbc:mysql://dbURL","user","password"); 
    return dbConn; 
    } 

答えて

1

短い答え

オープンイベントにフォームがビューで開いたときにフォームが編集モードで開かれたときに発生し、ない(応答の提出)モードユーザーが編集する権限を持っている、と場合にのみ、フォーム。

次の引用符強調に関する参考文献

は私のものです:

https://developers.google.com/apps-script/guides/triggers/

onOpen(e)実行するユーザーは、スプレッドシートを開き、ドキュメント、または彼または彼女はへのアクセス権を持っていることを形からを編集してください。インストール可能https://developers.google.com/apps-script/guides/triggers/installable

から

は常にそれらを作成した人のアカウントで実行トリガします。たとえば、インストール可能なオープントリガーを作成すると、同僚がドキュメントを開くときに実行されます(同僚が編集アクセスを持っている場合は)が、あなたのアカウントとして実行されます。

関連する問題