2016-11-09 2 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

Installable Триггеры всегда выполняются под учетной записью пользователя, создавшего их. Например, если вы создаете установочный открытый триггер, он будет запускаться, когда ваш коллега откроет документ (, если ваш коллега имеет доступ к редактированию), но он будет работать как ваша учетная запись.

Смежные вопросы