我正在创建一个电子表格来记录租赁数据。
我在一张纸(Clients)上有客户信息,在另一张纸上有租赁信息:
Rental。
[ID] [Name] [Phone] [Product Code] [Product Name] [Price]Clients
[Name] [e-mail] [Phone]客户端的唯一标识符是它们的电话号码。
为了方便用户,在Rental表上,接待员使用客户的名称来记录租用的设备,唯一的ID (电话号码)被用作记录中的隐藏数据。
当有多个客户具有相同的名称时,我使用带有HtmlService.createTemplateFromFile和SpreadsheetApp.getUi().showModalDialog的弹出窗口,接待员可以在其中单击实际客户的电话号码。
我被困在根据getRange(SpreadsheetApp.getActiveSpreadsheet.getActiveRange.getRow(),2 ( Rental工作表上活动行的第2列)中的数据从工作表Clients中查找电话号码列表的部分。
我不能使用表单的内置功能,比如从API脚本中过滤或查询。
如果可能的话,我真的想避免将整个项目迁移到google sql数据库。
如有任何建议或建议,欢迎光临。
发布于 2018-06-27 18:39:19
1)定义客户端工作表的查阅字段('Name')
2)使用onEdit(e)触发器处理租用表中的编辑事件,并检查第二列(名称)是否被编辑。有关简单且可安装的触发器的更多信息
https://developers.google.com/apps-script/guides/triggers/
https://developers.google.com/apps-script/guides/triggers/installable
3)从客户端工作表的第一列(‘Name’)获取值:
var rows = sheet.getRange(2, 1, sheet.getLastRow - 1, 1).getValues() 并根据用户输入对其进行过滤。
rows = rows.filter(function(row){ return row[0] == userInput });如果返回一个以上的值,则显示弹出窗口,并将变量传递给HTML模板。更多关于如何做到这一点的信息
if (values.length > 1) { //do something }如果您对使用GAS没有足够的信心,请参考官方文档。
https://stackoverflow.com/questions/51057981
复制相似问题