Google 应用程序脚本在 Google 表单提交后触发两次

2024-03-17

我的脚本在 Google 表单和链接的表格中运行两次时遇到问题。我有一个表单提交触发器。如果我删除此触发器,则脚本根本不会在表单提交上运行。如果我重新添加触发器,它将触发两次 - 但工作表响应中只有一个表单提交。我想也许我点击了表单提交两次,但似乎并非如此。谢谢。

这是代码:

function myFunction(e) {


  // Set values for event "e" from Response form, each number being a column in the spreadsheet. Column zero is not used - it is the timestamp
  var JobNumber = e.values[1];

  // Create an array from the PNEZD field in the form then find the array location for the inputted shot number
  var PNEZD_field = e.values[2];
  var PNEZD_array = Utilities.parseCsv(PNEZD_field);

  var StructureNumber = e.values[3];

  for (i = 0; i < PNEZD_array.length; i++) {
    if (PNEZD_array[i][0] == StructureNumber) {
      var Elevation = PNEZD_array[i][3];
      var Easting = PNEZD_array[i][2];
      var Northing = PNEZD_array[i][1];
    }
  }


  // STRUCTURE TYPE AND SIZE
  var StructureType = e.values[4];
  var StructureSize = e.values[5];

  // PIPE NUMBER 1  
  var PipeSize1 = e.values[6];
  var PipeMaterial1 = e.values[7];
  var PipeDirection1 = e.values[8];
  var PipeMeasureDown1 = e.values[9];

  // PIPE NUMBER 2 
  var PipeSize2 = e.values[10];
  var PipeMaterial2 = e.values[11];
  var PipeDirection2 = e.values[12];
  var PipeMeasureDown2 = e.values[13];

  // PIPE NUMBER 3  
  var PipeSize3 = e.values[14];
  var PipeMaterial3 = e.values[15];
  var PipeDirection3 = e.values[16];
  var PipeMeasureDown3 = e.values[17];

  // PIPE NUMBER 4 
  var PipeSize4 = e.values[18];
  var PipeMaterial4 = e.values[19];
  var PipeDirection4 = e.values[20];
  var PipeMeasureDown4 = e.values[21];

  // PIPE NUMBER 5 
  var PipeSize5 = e.values[22];
  var PipeMaterial5 = e.values[23];
  var PipeDirection5 = e.values[24];
  var PipeMeasureDown5 = e.values[25];

  //  Calculate Invert Elevations:  
  var Dip1 = Elevation - PipeMeasureDown1;
  var Dip2 = Elevation - PipeMeasureDown2;
  var Dip3 = Elevation - PipeMeasureDown3;
  var Dip4 = Elevation - PipeMeasureDown4;
  var Dip5 = Elevation - PipeMeasureDown5;

  // Build structure information
  var firstLine = StructureType + " " + StructureSize + "\n";
  var secondLine = "Rim=" + Elevation + "\n";
  var thirdLine = PipeSize1 + " " + PipeMaterial1 + " I.E. " + PipeDirection1 + "=" + Dip1 + "'\n";
  var fourthLine = PipeSize2 + " " + PipeMaterial2 + " I.E. " + PipeDirection2 + "=" + Dip2 + "'\n";
  var fifthLine = PipeSize3 + " " + PipeMaterial3 + " I.E. " + PipeDirection3 + "=" + Dip3 + "'\n";
  var sixthLine = PipeSize4 + " " + PipeMaterial4 + " I.E. " + PipeDirection4 + "=" + Dip4 + "'\n";
  var seventhLine = PipeSize5 + " " + PipeMaterial5 + " I.E. " + PipeDirection5 + "=" + Dip5 + "'";

  var Mtext = firstLine + secondLine + thirdLine + fourthLine + fifthLine + sixthLine + seventhLine;

  var calcsheet = SpreadsheetApp.openById('-removed-').getSheetByName('Calculations');
  var ss = SpreadsheetApp.getActiveSpreadsheet(); // ss is now the spreadsheet the script is associated with
  var sheet = ss.getSheets()[1]; // sheets are counted starting from 0
  // sheet is the second worksheet in the spreadsheet
  var cell = sheet.getRange("A1");
  cell.setValue(Mtext);



  // Dump variable to logger log
  //    var dump = "Variable dumps:  first the URL: " + PNEZD_fileURL + " and next the file ID alone: " + PNEZD_fileID + " and now the job number: " + JobNumber;
  //    Logger.log( dump );
  //    Logger.log(JobNumber); 
  //    Logger.log("Data dump: " + PNEZD_field);
  //    Logger.log("Data dump: " + PNEZD_array[3][3]);
  //    Logger.log(StructureNumber + "," + Northing + "," + Easting + "," + Elevation);




}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 应用程序脚本在 Google 表单提交后触发两次 的相关文章

随机推荐

  • Plone 工作流程的圣杯

    我们正在实施 Plone CMS 作为 ISO9001 文档的存储库 ISO 要求一定量的日志记录 任何熟悉该标准的人都可能知道 为了灵活性 我们希望合并 不按特定顺序 新的内容类型 需要合并企业中可能出现的不同文档 版本控制 表明我们的文
  • Maven 程序集插件在 jenkins 中重新下载依赖项

    由于某种原因 每次我尝试使用 Jenkins 构建项目时 maven 似乎都在尝试下载项目的依赖项 有一些问题 第一个是它根本不应该这样做 另一个问题是它甚至没有尝试从正确的存储库下载它们 这意味着它必须等待它们中的每一个都超时 我可以自己
  • 如何使geom_bar中的闪避与geom_errorbar、geom_point中的闪避一致

    我有一个数据集 其中在不同日期对不同组进行测量 我想要并排的条形图代表不同组在不同日期的测量值 条形图组根据测量日期间隔 并在它们上面覆盖误差条 我在躲避时遇到了麻烦geom bar同意闪避geom errorbar 这是一段简单的代码 d
  • 基于int数组创建WritableRaster

    我需要获取一个 int 数组并将其转换为 BufferImage 我真的对这个主题没有任何背景 我都是从互联网上学到的 所以这就是我想要做的 从 BufferedImage done 创建一个数组 将该数组转换为 IntBuffer don
  • TabIndex 无法正常工作的可能原因是什么

    所以我从 0 开始 为表单上的控件定义 tabindex 但在运行时一切都搞砸了 形式有点复杂 它有水平和垂直的分割器和面板 组框和一些旧的 VB 6 0 activeX 控件 它们内部是一个树控件 即使我以编程方式执行此操作并读取prev
  • 接口中的协变返回类型未通过 Javac 编译

    我有以下结构 public interface BarReturn public interface FooReturn public interface FooBarReturn extends FooReturn BarReturn p
  • 无法在 firebase 云函数中创建自定义令牌,因为服务帐户没有必要的权限

    打电话时admin auth createCustomToken 我收到以下错误 需要 iam serviceAccounts signBlob 权限才能对服务帐户项目 serviceAccounts k 执行此操作 电子邮件受保护 cdn
  • 使用 #!/usr/bin/php 时自定义 php.ini

    我有一个脚本 我试图在其中加载自定义php ini文件 该脚本通过以下方式在 nix 系统上运行 usr bin php qc path to php ini标头 然而 当这样做时 PHP 报告加载的php ini文件不存在 即没有加载 如
  • 在 ondrag 事件期间,pageX 和 pageY 在 Firefox 中始终设置为 0

    我正在实现一个可视化编辑器 允许用户将图像拖动到页面上 并将其他图像拖动到这些先前拖动的图像中 类似于 添加另一个图像 我基本上只需要拖动过程中的鼠标坐标 元素 hiliting 等 我使用基于这些坐标的自定义函数 问题是 在 Webkit
  • 升级 @ngrx/Store 时,“Action”类型上不存在属性“payload”

    我有 ngrx store打包在我的 Angular 4 x 应用程序中 并从 v 升级2 2 2 gt v4 0 0 我可以看到迁移注释说 Payload 属性已从 Action 接口中删除 然而 他们给出的例子似乎完全违反直觉 在我看来
  • 整个网页使用一个文件的优点和缺点? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不知道该怎么表达 但我会尝试一下 我最近开始用面向对象的 PHP 编写我的作品集 我想知道使用内容根据 SQL 数据和 GET 变量
  • 如何从 Android Fragment 禁用或隐藏抽屉布局

    我的应用程序中有 10 个不同的片段 我需要在几个片段中隐藏导航抽屉 抽屉布局 如何从片段访问抽屉布局并隐藏它 我知道我们需要在活动中使用mDrawerLayout setDrawerLockMode DrawerLayout LOCK M
  • VS 2010无法打开源文件“字符串”

    突然之间 我的 VS 2010 项目中的 Intellisense 开始变得疯狂 一切都正确构建 但它无法再找到基本的 C 头文件 如字符串 映射等 它不再识别 std 命名空间 而且通常会变得混乱 代码仍然可以编译 但无论我做什么 我都无
  • 服务器宕机时移动 SVN 存储库

    我的 SVN 服务器死了 我有另一台可以用作 SVN 服务器的机器 还有几台带有原始存储库的工作副本的机器 是否有一种干净的方法可以仅从当前工作副本在新服务器上重新创建存储库 历史是可以被遗忘的 我尝试创建一个新的存储库 破解其 UUID
  • 如何将字符串与整数进行比较

    In SQL Server 2012 我有一组列定义为VARCHAR 这些值是指标的阈值 可以是数字或字符串值 例如 温度的阈值是数字0 and 100 而门的阈值是open and closed 我想测试一个值 ResponseValue
  • 如何使 new FormData() 在 IE 浏览器上工作

    我怎样才能让这个在 IE 上工作 这在 IE 上不起作用 IE 浏览器不支持 new FormData api 是否有其他 api 相当于 IE 中的 new FormData var fd new FormData fd append u
  • Google Apps Script V8 分配给 null 会取消调试

    将变量赋值为 null 会导致调试取消该行的执行 这是重现该问题的测试脚本 function myFunction var a Hallo Logger log a a var b null Logger log b b 调试时 此脚本执行
  • 如何将日期正确转换为 UTC 然后再转换回来?

    我正在努力将 DateTime 转换为 UTC 概念以及所有我无法正确理解的内容 当我得到一个日期时间字符串 比如 7 10 2013 时 我只是这样做 Convert ToDateTime 7 10 2013 ToUniversalTim
  • PyGObject 中的 TreeView 拖放:未调用拖拽数据删除?

    我正在研究如何在 PyGObject 的 TreeView 中进行拖放的示例 我有一些不明白的事情 为什么是drag data delete函数从未被调用 这是独立的示例 from gi repository import Gtk Gdk
  • Google 应用程序脚本在 Google 表单提交后触发两次

    我的脚本在 Google 表单和链接的表格中运行两次时遇到问题 我有一个表单提交触发器 如果我删除此触发器 则脚本根本不会在表单提交上运行 如果我重新添加触发器 它将触发两次 但工作表响应中只有一个表单提交 我想也许我点击了表单提交两次 但