html - 在 Google 电子表格中显示输入框后脚本未执行代码 - 如何在获取用户输入后运行代码
问题描述
对编码和概念非常陌生。这段代码还不是我想要的,但对于这个例子来说已经足够好了。它将一个递增的数字添加到下一个填充的行。
function onFormSubmit(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var row = SpreadsheetApp.getActiveSheet().getLastRow();
sheet.getRange(row,1).setValue(row);
}
这部分增加了一个菜单选项PROCESS,允许用户在菜单中选择Next Order。而且我想我明白我正在命名一个自定义函数 nextOpenOrder 以供下一步使用...
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 并选择订单 # 时,它不会自动发生。
我敢肯定,这很简单,因为我对此很陌生。有人可以推动我前进吗?
解决方案
推荐阅读
- mysql - 输出名称而不是 id
- .net - 具有 ReflectionPermissionFlag.RestrictedMemberAccess 的动态程序集/类型
- php - mysql 查询显示错误:#1241 - 操作数应包含 1 列
- database - Flutter:StreamBuilder 使用旧流而不是新流
- encryption - 从 -password 向 openssl .pem 文件添加密码
- java - 从 HttpServiceClient 读取一个巨大的结果集并以块的形式显示它们
- android - 如何对 Recyclerview 进行排序?
- c - 在 execlp 调用期间睡觉以避免输出“滞后”?可能吗?
- excel - 创建一个更新为新值的单元格
- java - 具有自定义令牌身份验证的 Spring Security