背景:私はGoogleサイトを持っており、生徒のマークを含むGoogleスプレッドシートから情報を取得していますが、生徒が現在のすべてのマークのレポートをいつでもリクエストできるように、より動的にしたいと考えています。 dが好きです。私が書いたスクリプトでは、生徒はパスワードを入力し、ボタンをクリックすると、マークが生成されます。
問題:私が読んだところによると、ボタンをクリックすると、ボタンのハンドラーによってスクリプトが再実行されます。現在のスプレッドシートを保存できません。スプレッドシートにアクセスしようとすると、nullであると表示されます。スプレッドシートに再度アクセスするにはどうすればよいですか?ScriptPropertiesを使用してみましたが、同じ結果が得られました。ちなみに、Webアプリとして実行しないと動作します。
これがdoGet()関数と、UIのボタンが押されたときに呼び出されるgetPassword()関数の一部です。
function doGet() {
var app = UiApp.createApplication();
app.add(app.loadComponent("MyGui"));
var panel = app.getElementById("VerticalPanel1");
var text = app.createPasswordTextBox().setName("text");
var handler = app.createServerHandler("getResults").addCallbackElement(text);
panel.add(text);
panel.add(app.createButton("Get Record", handler));
SpreadsheetApp.getActiveSpreadsheet().show(app);
}
function getResults(eventInfo) {
var app = UiApp.createApplication();
var password = eventInfo.parameter.text;
var panel = app.getElementById("VerticalPanel1");
var textArea = app.createRichTextArea();
panel.add(textArea);
var pointsSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var passwordCheckRange = pointsSheet.getRange("B70:C94").getValues();
...