0

私の場合はこれです。[googlescriptドキュメントへのリンク][1]に投稿されたサンプルスクリプトを初めて使用したときに、GUIBuilderで作成されたフォームから取得したデータまたは値を保存しようとしています。

それはうまくいき、フォームに入力された値を取ることができましたが、より多くのテキストフィールドなどが必要なため、GUIビルダーを使用することにしたとき、それは機能しなくなります。ボタンをクリックするたびに、スプレッドシートは「未定義」の値。

すべての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」関数に設定されていることを確認しました。

すべてのテキストボックスとラベルは、ボタンを含め、絶対パネルに含まれています。

4

1 に答える 1

0

パラメータに対応する必要があるのは ID ではなく、名前です。これらは GUI ビルダーの別のタブで定義され、e.parameter.name で値を取得するために使用されます。

以下のスクリーン キャプチャを参照してください。

ここに画像の説明を入力

編集:あなたのコメントに続いて、GUI でコールバック要素を確認しましたか? 親パネルですか?

ここに画像の説明を入力

于 2012-10-01T20:44:07.767 に答える