#google-apps-script #google-sheets
#google-приложения-скрипт #google-sheets
Вопрос:
У меня есть электронная таблица, которая большую часть времени открыта на столе нескольких пользователей, указывающая на прогресс по заказам. Одна точка данных, которую вводит лицо, оформляющее заказ, — это номер приоритета. Я хочу, чтобы на экране определенного пользователя (лица, выполняющего заказ) отображалось диалоговое окно, когда для заказа установлен приоритет один, независимо от того, на какой странице он находится.
function onEdit(e){
{
var editRange = { //where New Order information is entered:
top : 2,
bottom : 299,
left : 3,
right : 4
};
//Is it in the right sheet for a new order?
var thisSheet = e.source.getActiveSheet()
if (thisSheet.getName() != "Sheet1") return;
// Exit if we're out of range
var thisRow = e.range.getRow();
if (thisRow < editRange.top || thisRow > editRange.bottom) return;
var thisCol = e.range.getColumn();
//This part, right here:
**if (thisCol == 8 amp;amp; e.range.getValue()=='1') {SpreadsheetApp.getUi().alert("An order has been moved to priority One.")
return;}**
if (thisCol < editRange.left || thisCol > editRange.right) return;
// We're in range; timestamp the edit
var ss = e.range.getSheet();
ss.getRange(thisRow,14) // "G" is column 7
.setValue(new Date()).setNumberFormat("MM/dd/YYYY");
}
Код, окружающий его, добавляет отметку даты к любым новым или измененным заказам. Я надеялся, что смогу поместить это в те же каскадные «Если», потому что это происходит с той же страницы. В настоящее время он только уведомляет лицо, внесшее изменение. Если уведомление только определенного пользователя невозможно, уведомление всех с открытой в данный момент электронной таблицей также было бы приемлемым результатом.
Я бы также хотел, чтобы в диалоговом окне отображалось, какой порядок был обновлен до приоритетного, но это всего лишь манипуляция со строками, и я, вероятно, смогу заставить его работать.
У меня есть фотография с поддельными данными:https://i.stack.imgur.com/N9WO2.png
Комментарии:
1. Возможно, вы сможете добиться желаемого поведения, развернув скрипт в качестве дополнения, которое будет установлено всеми вашими пользователями. Другой обходной путь, о котором я могу подумать, — создать комментарий к документу и назначить его лицу, обрабатывающему полное заполнение. При этом также будет отправлено оповещение по электронной почте. Дай мне знать, что ты думаешь
2. Я думаю, что вы используете и устанавливаете триггер onEdit, вы должны иметь возможность отправлять электронное письмо. Каждый должен будет это санкционировать.