Уведомление по электронной почте на основе смены сотовой связи - PullRequest
0 голосов
/ 09 апреля 2020

Я хочу написать код, который будет отправлять оповещения по электронной почте в зависимости от изменения значения ячейки на разных вкладках.

Например:

Ячейка AE1 на вкладке 1 изменения - электронная почта человеку 1 ячейка AE1 на вкладке 2 изменения - электронная почта человеку 2 ячейка AE1 на вкладке 3 изменения - электронная почта человеку 3

Я использовал это раньше, и это сработало, но я не знаю, как изменить так, чтобы порог был в любое время, когда ячейка изменяется, вместо того, чтобы быть меньше / больше, чем значение.

function CheckRins() {
  // CheckRins
  var monthSalesRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Summary").getRange("D2"); 
  var monthSales = monthSalesRange.getValue();

  if (monthSales < 2){

    var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("B2");
    var emailAddress = emailRange.getValues();

    // Send Alert Email.
    var message = 'Anthony Madle has ' + monthSales "remaining" 


+

    ; // Second column
    var subject = 'Madle Low Sales Alert';
    MailApp.sendEmail(email Address, subject, message);
    }
}

Возможно ли это?

1 Ответ

0 голосов
/ 10 апреля 2020

Вот простой пример таймера:

Он выбирает значение в A1 из Sheet13 и запускает функцию sendEmail () при каждом ее изменении. Функция sendEmail просто генерирует окно сообщения, в котором говорится, что электронное письмо отправлено. Вот где вы хотели бы добавить функцию sendEmail.

GS:

//this is what starts it all I use this name because I have a bunch of predefined menutitems for running functions
function runTwo() {
  SpreadsheetApp.getUi().showSidebar(HtmlService.createHtmlOutputFromFile('ah3'));
}

function getData() {
  return SpreadsheetApp.getActive().getSheetByName('Sheet13').getRange('A1').getValue();
}

function sendEmail() {
  Browser.msgBox('Email Sent');
}

//Generate a message when the sample is stopped with the button
function stopped() {
  Browser.msgBox('Stopped');
}

html:

<!DOCTYPE html>
<html>
<head>
  <base target="_top">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

</head>
<body>
  <input type="button" value="Stop" onClick="stop()" />
  <script>
  var timer='';
  var olddata='';
  $(function(){
    google.script.run
    .withSuccessHandler(function(data){
      olddata=data;
      timer=setInterval(goGetData,2000);   
    })
    .getData();    
  });

    function stop() {
      clearInterval(timer);
      google.script.run.stopped();
    }

    function goGetData() {
      google.script.run
      .withSuccessHandler(function(data){
        if(olddata!=data) {
          google.script.run.sendEmail()
          olddata=data;
        }
      })
      .getData();
    }
  </script>
</body>
</html>

Анимация:

enter image description here

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