Из-за отсутствия функциональности в Документах Google для контрольных списков я пишу кодовый скрипт для автоматического расчета процента заполнения списка на основе символа, присутствующего в каждом элементе списка, принадлежащем списку. Для этого я извлекаю все listItems, относящиеся к listID, а затем пытаюсь проверить их атрибут GLYPH_TYPE, чтобы определить, какие элементы были завершены (что пользователь указывает, щелкая символ слева от элемента списка и меняя его). к галочке). Проблема заключается в том, что при попытке получить все элементы списка, которые принадлежат данному списку ID, идентификатор меняется, когда символ перед элементом списка изменяется (другими словами, атрибут GLYPH_TYPE отличается.)
Несмотря на то, что список согласован для пользователя (список выглядит как контрольный список с некоторыми пунктами завершенными, а другие нет), я не могу просто идентифицировать список в коде с помощью метода getListID () из-за встроенной функциональности Google это автоматически определяет другой список, когда атрибут GLYPH_TYPE отличается от других listItems.
Ниже приведен метод, который я использую, чтобы попытаться получить все listItems, которые принадлежат конкретному listID, а затем вернуть соответствующие listItems в массив для статистического анализа:
function getAllListItemsInList(listID,documentID){
var doc = DocumentApp.openById(documentID);
var body = doc.getBody();
var listItems = body.getListItems();
var listItemsWithID = [];
for(var i = 0; i< listItems.length; i++){
Logger.log(listItems[i].getListId());
if(listItems[i].getListId() == listID){
listItemsWithID.push(listItems[i]);
}
}
return listItemsWithID;
}
Если вы запустите этот метод для связного списка из 5 элементов списка, в котором один из них имеет галочку в качестве типа глифа вместо маркера, регистрируется и возвращается следующее:
Следующее регистрируется и возвращается;
[19-01-22 15:44:04:885 MST] kix.jbwvso8omgk3
[19-01-22 15:44:04:886 MST] kix.jbwvso8omgk3
[19-01-22 15:44:04:886 MST] kix.mvpj0m62r3h8
[19-01-22 15:44:04:887 MST] kix.jbwvso8omgk3
[19-01-22 15:44:04:888 MST] kix.jbwvso8omgk3
[19-01-22 15:44:04:888 MST] [ListItem, ListItem, ListItem, ListItem]
Как видите, вместо 5 возвращается только 4 элемента. 4 из 5 элементов listItems имеют одинаковый listID, а элемент с другим типом глифа - нет.
Есть ли интуитивный обходной путь? Или, возможно, более интуитивно понятный способ отслеживать заполнение «контрольных списков» в Документах Google?