0

我的情况是这样,我正在尝试保存从 GUI Builder 上创建的表单中获取的数据或值,这是我第一次使用 [link to google script documentation][1] 上发布的示例脚本

它工作得很好,我可以在表单上输入值,但是当我决定使用 GUI Builder 时,因为我们需要更多的文本字段和东西,它停止工作,每次我点击按钮时,我的电子表格都会得到一个“未定义”值。

我检查了所有的 ID,它们都与脚本完全相同。

编码:

_guardar :此函数将文本字段值插入电子表格。celda 在英文中意为细胞 ultimaFila 意为 lastRow

   function doGet(e) {      
   var doc = SpreadsheetApp.openById('0Au-gVDPWE5-bdDhJQzc2N2U4Q2l3LVY2cWpkbHdXMVE'); 
   var app = UiApp.createApplication();      
   app.add(app.loadComponent("MyForm"));
   return app;
 }  


function _guardar(e){
  var app = UiApp.getActiveApplication();
  var doc = SpreadsheetApp.openById('0Au-gVDPWE5-bdDhJQzc2N2U4Q2l3LVY2cWpkbHdXMVE');
  var ultimaFila = doc.getLastRow(); 
  var celda = doc.getRange('a1').offset(ultimaFila, 0); 
  celda.setValue(e.parameter.nombre);
  celda.offset(0, 1).setValue(e.parameter.empresa); 
  celda.offset(0, 2).setValue(e.parameter.nit); 
  celda.offset(0, 3).setValue(e.parameter.sector); 
  celda.offset(0, 4).setValue(e.parameter.telefono); 
  celda.offset(0, 5).setValue(e.parameter.email); 
  celda.offset(0, 6).setValue(e.parameter.web); 
  celda.offset(0, 7).setValue(e.parameter.descripcion);      


  app.close();

  return app; 

}

这类似于 google 文档站点上的示例代码。![在此处输入图像描述][2]

我还检查了“OnClick”事件是否设置在“_enviar”函数上。

所有文本框和标签都包含在 Absolute 面板中,包括按钮。

4

1 回答 1

0

与参数相对应的不是 ID,而是名称。这些在 GUI 构建器的另一个选项卡中定义,用于通过 e.parameter.name 获取值

请参阅下面的屏幕截图:

在此处输入图像描述

编辑:根据您的评论,您是否检查了 GUI 中的回调元素?它是父面板吗?

在此处输入图像描述

于 2012-10-01T20:44:07.767 回答