Публикация пользовательских форм HTML на разных листах в листах Google - PullRequest
0 голосов
/ 24 октября 2018

У меня есть 4 формы, которые мне нужно опубликовать на разных листах.У меня есть следующий код, который позволяет отправлять формы, но только на текущий (активный) лист, но я не могу получить его для публикации на другом листе.

Другой вариант, если у меня может быть одна форма, и в зависимости от того, какой отдел (Имя листа) вы выберете, он будет публиковать на этом листе.

function openDialog1() {
  var html = HtmlService.createHtmlOutputFromFile('form1.html');
    SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
    .showModalDialog(html, 'Pop up Form');
}
function openDialog2() {
  var html = HtmlService.createHtmlOutputFromFile('form2.html');
    SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
    .showModalDialog(html, 'Pop up Form');
}
function openDialog3() {
  var html = HtmlService.createHtmlOutputFromFile('form3.html');
    SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
    .showModalDialog(html, 'Pop up Form');
}
function openDialog4() {
  var html = HtmlService.createHtmlOutputFromFile('form4.html');
    SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
    .showModalDialog(html, 'Pop up Form');
}

function doGet(e){
    return HtmlService.createHtmlOutputFromFile('index').setTitle('Adding Rows');
}

function doPost(e) {
    Logger.log(e);
}

function sendText(data){
      var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow([data.item_number, data.shop_number, data.escalation, data.Hide1, data.notes, data.problem, data.added_by, data.incoive_date, data.location_order, data.user_working, data.CS_rep, data.shipping, data.department]);

    return 'success!';
}

Вот ссылка на мою тестовую таблицу, так чтоВы можете увидеть HTML и проверить.

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

1 Ответ

0 голосов
/ 25 октября 2018

, как видно из электронной таблицы, вы используете google.script.run.sendText(data) в каждой форме.Одним из решений было бы перестроить вашу функцию следующим образом.

html

<script>
  google.script.run.withSuccessHandler(function(response) {
    console.log(response);
    google.script.host.close()
    }).sendText("Your Sheet",data);
</script>

ГАЗ

function sendText(sheetName, data){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(sheetName);
  sheet.appendRow([data.item_number, data.shop_number, data.escalation, data.Hide1,       data.notes, data.problem, data.added_by, data.incoive_date, data.location_order, data.user_working, data.CS_rep, data.shipping, data.department]);
  return 'success!';
}

Вынужно только передать в качестве аргумента имя вашего листа.

...