脚本在Google电子表格中显示输入框后无法执行代码-如何在获得用户输入后运行代码

时间:2018-12-13 17:28:00

标签: html google-apps-script google-sheets sidebar

对于编码和概念非常新。 这段代码不是我想要的,但是对于示例来说,它已经足够好了。它将增量数字添加到下一个填充的行。

    function onFormSubmit(e) {

var sheet = SpreadsheetApp.getActiveSheet();
var row =  SpreadsheetApp.getActiveSheet().getLastRow();

sheet.getRange(row,1).setValue(row);
}

此部分添加了一个菜单选项PROCESS,并允许用户在菜单中选择Next Order。而且我想我知道我在命名自定义函数nextOpenOrder以使用next ...

    function onOpen(e) {
  SpreadsheetApp.getUi()
      .createMenu('PROCESS')
      .addItem('Next Order', 'nextOpenOrder')
      .addToUi();
}

然后这是我的自定义函数,它抛出一个浏览器框,提示用户输入由代码的第一位生成的下一个订单号。

    function nextOpenOrder() {
  var spreadsheet = SpreadsheetApp.getActive();
  var settingsSheet = spreadsheet.getSheetByName('FormResponses3');
  settingsSheet.activate();
  var selectedRow = Browser.inputBox('Create Parts Order',
      'Please enter the Order ID# to use' +
      ' (for example, "2"):',
      Browser.Buttons.OK_CANCEL);
}

但是下一步是抛出html或pdf文档。最终目的是提供一行数据,以便最终用户可以在另一软件中输入零件订单。我已经弄清楚了如何制作一个通用的面板。

function showDialog() {
  var html = HtmlService.createHtmlOutputFromFile('INDEX')
      .setWidth(400)
      .setHeight(300);
  SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
      .showModalDialog(html, 'My custom dialog');
}

我的INDEX.html代码:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    Hello, World!    
  </body>
</html>

但是,我似乎无法解决的问题是,这最后的代码不是自己执行的。我可以从脚本页面运行它,它将显示一个带有消息的对话框。但是当我按PROCESS并选择订单#时,不会自动发生。
我敢肯定,这很简单,因为我真的很环保。 有人可以推动我前进吗?

0 个答案:

没有答案