0

これは本当にばかげた質問だと確信していますが、1時間グーグルで検索しましたが、うまくいきませんでした。

さまざまなウィジェットにスプレッドシート データ (一部のテキスト、一部の日付) を保存しています。ある時点で、クリック ハンドラーはウィジェットからテキストまたは日付を読み戻し、それを別のスプレッドシートに書き出す必要があります。現在、FlexTable (または FlexTable の Label ウィジェット) にデータがあります。私は今、このデータを読み返す方法がないことを知りました (私はそう思います)。

これをどのように処理するつもりですか?データを保存して表示し、後で読み戻せるウィジェットが必要なだけです。

ありがとう。

編集

答えが実際に私をさらに前進させたとは思いません。一部のウィジェットがハンドラーにコールバックとして渡された場合、それらの値を読み取ることができることに感謝しています。ただし、これはメソッドを持つものに制限されているようです-setNameこれはただでしょうか? もしそうなら、それはユーザーエントリーのためなので、それは役に立ちません。TextBoxListBoxTextBox

それで、(ユーザーではなくスクリプト)がデータを保存し、後でそれを読み戻せるウィジェットはありますか?それとも私が太っているだけですか?

4

3 に答える 3

1

あなたはあまりよく検索していません。ここにはたくさんの例があります...今日投稿されたのは1つだけです: Date AND Time picker Google App Script

およびドキュメント、ページの(近くの)最後を見てください...

于 2013-01-18T21:59:08.623 に答える
1

タグにもテキストを設定すると、ラベルウィジェットから実際にテキストを読み取ることができます...

// Get Label text and set it to another label
function doGet() {
  var app = UiApp.createApplication();
  var panel = app.createVerticalPanel();
  var label1 = app.createLabel('hello').setTag('hello').setId('label1');
  Logger.log(label1.getTag()); // works
  var label2 = app.createLabel('').setId('label2');
  var handler = app.createServerHandler('myFunction').addCallbackElement(panel);
  var btn = app.createButton('Get tag', handler);
  panel.add(label1).add(label2).add(btn);
  app.add(panel);
  return app;
}

function myFunction(e) {
  var app = UiApp.getActiveApplication();
  Logger.log(app.getElementById('label1').getTag()) // doesn't work
  var tag = e.parameter.label1_tag; // works
  Logger.log(tag); 
  app.getElementById('label2').setText(tag); // Sets label2 text as label1 tag
  return app;
}

ラベルで指定することはありません.setName()が、自動的に作成されるようです。

あなたの場合、ラベルと一致する非表示のテキスト ボックス内にテキストを格納することも別のオプションです

于 2013-01-19T21:33:37.630 に答える
0

https://developers.google.com/apps-script/uiapp#ServerHandlersをご覧ください。 ウィジェットの値は、e.parameter でサーバー ハンドラーに渡されます。ウィジェットの名前と ID を忘れずに指定してください。処理されたイベントをトリガーするものではないウィジェットの値を取得したい場合は、widget タグの値を使用してデータを渡す必要があります

于 2013-01-18T22:12:38.733 に答える