0

みなさん、こんにちは。

Google App Scriptは、さまざまな方法で使用できます。私はそれらのいくつかを試した原因を知っていますが、Iamは専門家ではないので、状況はそうです。

スクリプトエディタに付属する新しいUIビルディングを使用して、スプレッドシートを作成してフォームを作成しました。named:gtest01
UI構成:

  • ラベル、id = label_caption
  • ボタン1、id = button_hide、event-onmouseclick = hidden_​​label
  • ボタン2、id = button_show、event-onmouseclick = show_label
  • ボタン3、id = button_message、event-onmouseclick = message_me

現在、コードは次のとおりです。

/* This is so when I want to just deploy it as a [webapp] using the
script editor -> Publish Deploy as Web App
*/
function doGet(e) {
 var app = UiApp.createApplication().setTitle("Sheet Application");
  app.add(app.loadComponent("gtest01"));
  Logger.log("Application UI Loaded");  
  return app;
}

function message_me(e) {  
  Browser.msgBox("my message"); 
}

function hide_label(e) {
  var app = UiApp.getActiveApplication();
  label =app.getElementById("label_caption");
  label.setVisible(false);
}

function show_label(e) {
  var app = UiApp.getActiveApplication();
  label =app.getElementById("label_caption");
  label.setVisible(true);
}

// this code is for when the spreadsheet is shared so they can access the form
function showform_() {
  var app = UiApp.createApplication();
  app.add(app.loadComponent("gtest01"));
  SpreadsheetApp.getActiveSpreadsheet().show(app); 
}

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({name: "Show Form", functionName: "showform_"});
  ss.addMenu("e-Test", menuEntries);
}

最初のシナリオは、スプレッドシートが共有されている場合です

  • メニューをクリックするとフォームが読み込まれます-それは良いことです
  • ボタンの表示と非表示が何も起こらない場合-なぜ、どうすればこれを修正できますか?
  • メッセージボタンをクリックすると、メッセージは表示されますがフォームは閉じますが、フォームを閉じずにメッセージを表示するにはどうすればよいですか?

2番目のシナリオは、Webappとして公開する場合です。

  • Developer LinkがAccessの場合、UIは常に更新されます-ok
  • URLリンクがアクセスの場合、UIは常にキャッシュのように更新されますが、これを修正するにはどうすればよいですか?
  • 開発リンク:ボタンの表示と非表示が何も起こらない場合-なぜ、どのようにこれを修正できますか?
  • 開発リンク:メッセージボタンをクリックすると-エラーが発生します。WebAppにアラートメッセージを表示するにはどうすればよいですか?

サンプルコードを検索して試してみましたが、フォーラムで回答が不足しています。

ありがとう

ニックエース

4

2 に答える 2

2

ボタンの表示と非表示が何も起こらない最初のシナリオ-なぜ、どのようにこれを修正できますか?

関数では、最後にreturnアプリを使用します。アプリオブジェクトを返さない限り、UIは更新されません。

フォームを閉じずにメッセージを表示するにはどうすればよいですか?- 試す SpreadsheetApp.getActiveSpreadsheet().toast()

2番目のシナリオ

URLリンクがアクセスの場合、UIは常にキャッシュのように更新されますが、これを修正するにはどうすればよいですか?-最新のコードをバージョンとして保存します

開発リンク上:ボタンを表示および非表示にしても何も起こりません-再びリターンアプリがこれを処理します

開発リンク上:メッセージボタンがクリックされたとき...-Browser.msgBoxはWebアプリではサポートされていません。

于 2012-06-22T11:38:04.697 に答える
1

UIを使用する場合は、通常、このUi内ですべてを実行することをお勧めします。そのため、Toastでメッセージを表示しないようにしてください(Webアプリではサポートされていないため)。GUIを使用しているので、最初は非表示になっているメッセージのラベルを使用して、ハンドラールーチンで表示できるようにするのは非常に簡単です。このアクションから何か他のことをする必要がない限り、この種のハンドラーはクライアントハンドラーになることもできることに注意してください。

あなたの質問の他の点に関しては、私たちの(非常に速い)友人のスリックはすでに徹底的に答えています;-)

于 2012-06-22T12:21:15.677 に答える