Скопировать данные строки из ответа формы на редактируемый лист? - PullRequest
1 голос
/ 24 октября 2019

Я новичок в скриптах приложений, java и любом кодировании, которое я пытаюсь научить себя около недели, поэтому, пожалуйста, потерпите меня. Вот моя конечная цель и то, что я пытаюсь достичь. У меня есть форма, настроенная так, что, когда мне звонят, моя команда может просто ввести данные о клиентах и ​​сбросить эти данные, чтобы сформировать лист ответов. Затем я хочу, чтобы эти данные были перенесены на мастер-лист, оставив необработанные данные из формы нетронутыми.
Из мастер-листа мне нужно 6 листов данных поднабора, которые можно отфильтровать, переставить столбцы, добавить и отредактировать данные, чтобы редактироватьтакже обновит основной лист.

Другими словами, я бы хотел, чтобы вкладка для каждого члена команды отфильтровывалась по группе обслуживания на местах. Каждый член команды должен иметь возможность переставлять столбцы, сортировать фильтры и редактировать их соответствующие листы. После внесения этих изменений эти данные, в свою очередь, также должны обновляться на основном листе.

Что я выполнил ... Как только статус WO установлен на Invoiced, эта строка должна быть перемещена на лист архива и удалена из основного списка. Мне также нужен вариант перемещения архивированных строк обратно на мастер-лист, если необходимо повторно открыть WO. До сих пор мне удалось придумать следующий код, который перемещает строку между листами на основе определенного пользователем условия, такого как «Открыть», «Готово» или «Завершить» ...... Это, кажется, работает нормально, хотяможет быть более элегантный или эффективный способ сделать это.

https://docs.google.com/spreadsheets/d/1TOj72oc3Lboku0IvhsgHFi0utKG8rIZqT7IFlsKion4/edit?usp=sharing

Представленная ниже функция изменения статуса, похоже, отлично работает в моих тестах. С функцией on formubmit я борюсь.

     function onEdit(e) {//"e" receives the event object
  var range = e.range;//The range of cells edited

  var columnOfCellEdited = range.getColumn();//Get column number


    enter code here

  if (columnOfCellEdited === 6) {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = e.source.getActiveSheet();
  var r = e.source.getActiveRange();
  var C = 6 // column A=1, B=2, C=3, etc.
  var V1 = "Open" //Variable #1 user defined
  var V2 = "Review"
  var V3 = "Invoiced"
  var TS1= "Open"    //target sheet 1 name
  var TS2= "Review"  //target sheet 2 name
  var TS3= "Invoiced"    //target sheet 3 name
  var SS1 = "Test Work order Tracker"




  if(ss.getName() == SS1 && r.getColumn() == C && r.getValue() == V3 ) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName(TS3);
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
  else if(ss.getName() == SS1 && r.getColumn() == C && r.getValue() == V2 ){
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName(TS2);
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
   else{
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName(TS1);
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
}
}


    // set up on form submit trigger to copy data to masterlist
        function onFormSubmit(e)

      var responses = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Open");
      var masterList =  SpreadsheetApp.openById('1TOj72oc3Lboku0IvhsgHFi0utKG8rIZqT7IFlsKion4').getSheetByName("OriginResponse");
      var lastrow = responses.getLastRow();
      var col = responses.getLastColumn();
      var row = responses.getRange(lastrow, 1, 1, col).getValues();

      masterList.appendRow(row[0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...