Dropdown Script отстает - PullRequest
       2

Dropdown Script отстает

0 голосов
/ 10 марта 2020

У меня есть этот сценарий раскрывающегося списка, который создает раскрывающийся список на основе значения в столбце G. В столбце G может быть около 4 различных значений, которые должны создавать 4 различных набора раскрывающихся списков. Данные в столбце G поступают из фильтра, который постоянно обновляется новыми предложениями, что также приводит к тому, что этот сценарий также выполняется довольно стабильно. Время от времени скрипт немного запаздывает и оставляет выпадающие окна пустыми в течение минуты или около того перед обновлением. Ребята, есть ли у вас какие-либо предложения о том, как решить эту проблему?

function DropDowns() {
    var app = SpreadsheetApp;
    var ss = app.getActiveSpreadsheet();
    var draft = ss.getSheetByName("Time Off Action Items");
    var option = ss.getSheetByName("Options");
    var types = option.getRange(1, 1, 1, option.getLastColumn()).getValues()[0];
    var obj = types.reduce(function(o, e, i) {
        o[e.toUpperCase()] = option.getRange(2, i + 1, option.getLastRow());
        return o;
    }, {});
    var column = draft.getRange("H3:H" + draft.getLastRow());
    var Bcolumn = draft.getRange("G3:G" + draft.getLastRow());
    var rules = Bcolumn.getValues().map(function(e) {
        return e[0].toUpperCase() in obj ? [app.newDataValidation().requireValueInRange(obj[e[0].toUpperCase()]).build()] : [null]
    });

    column.setDataValidations(rules);
    Logger.log(types)
}

1 Ответ

0 голосов
/ 10 марта 2020

Основываясь на вашем утверждении

В столбце G может быть около 4 различных значений, которые должны создать 4 различных набора раскрывающихся списков.

Я могу придумать одна небольшая оптимизация

На основе значения вы можете заполнить раскрывающийся список известными значениями, а затем выполнить вызов для выбора параметров, это также даст нам новые параметры. Затем, когда у нас есть параметры, мы можем обновить параметры проверки.

Таким образом, задержка будет меньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...