0

Google Apps スクリプトを使用して Google サイトのページをリロードするにはどうすればよいですか? フォームを作成する関数と、フォームで送信されたデータを収集してスプレッドシートに書き込む別の関数 doPost があります。スプレッドシートは同じページに埋め込まれており、ページをリロードしてスプレッドシートのビューを更新したい。

Site Services と Ui Services でいくつかの機能またはサービスを見つけようとしました。

ここにコードがあります

function doGet(e) {
var appRegistro = UiApp.createApplication().setTitle('Registre seu Atendimento!').setHeight(500);
var form = appRegistro.createFormPanel();
var flow = appRegistro.createFlowPanel();
var date=new Date();

//Construção do Menu
flow.add(appRegistro.createLabel("Data"));
  flow.add(appRegistro.createTextBox().setName("Data").setValue(date).setReadOnly(true).setText(Utilities.formatDate(date, "GMT -02:00", "dd/MM/yyyy HH:mm:ss")));
flow.add(appRegistro.createLabel("Ticket ID"));
flow.add(appRegistro.createTextBox().setName("TicketID"));
flow.add(appRegistro.createLabel("Ticket Type"));
flow.add(appRegistro.createListBox().setName("TicketType").addItem("TicketType1").addItem("ticketType2").addItem("TicketType3").addItem("TicketType4"));
flow.add(appRegistro.createLabel("Demandado por"));
flow.add(appRegistro.createListBox().setName("DemandedBy").addItem("DemandedBy1").addItem("DemandedBy1"));
flow.add(appRegistro.createLabel("Nome do Analista"));
flow.add(appRegistro.createListBox().setName("Analyst").addItem("Analyst1").addItem("Analyst1").addItem("Analyst1"));
flow.add(appRegistro.createLabel("Status"));
flow.add(appRegistro.createListBox().setName("Status").addItem("Resolvido").addItem("Em Tratamento"));
flow.add(appRegistro.createLabel("Descrição"));
flow.add(appRegistro.createTextArea().setName("Description").setSize(400, 100));
flow.add(appRegistro.createSubmitButton("Salvar"));
form.add(flow);
appRegistro.add(form);
return appRegistro;
 }

function doPost(e) {
var app=UiApp.createApplication();
var ss = SpreadsheetApp.openById("0AsXUq-Wd26qMdGFodkNqdERSc3NYaHhUQlRFeFNFQlE");
  var DataValue = e.parameter.Data;
  var TicketIDValue = e.parameter.TicketID;
  var TicketTypeValue = e.parameter.TicketType;
  var DemandedByValue = e.parameter.DemandedBy;
  var AnalystValue = e.parameter.Analyst;
  var StatusValue = e.parameter.Status;
  var DescriptionValue = e.parameter.Description;
  ss.getActiveSheet().appendRow([DataValue,TicketIDValue,TicketTypeValue,DemandedByValue,AnalystValue,StatusValue,DescriptionValue]).sort(1,false);
  return app;
  }
4

3 に答える 3

0

セキュリティ上の制約から、あなたがやろうとしていることは不可能だと思います。

于 2012-12-20T15:18:35.447 に答える
0

私はスプレッドシートであまり仕事をしていませんが、おそらくあなたは制限を回避することができます、と他の回答者は述べています。

  • スプレッドシートにスクリプトを記述して、新しいデータをポーリングするために自分自身を更新できますか?
  • または、フォームを移動してスプレッドシートの一部にすることはできますか?おそらく、スプレッドシートのボタンでフォームをUiAppとして起動できますか?
于 2012-12-20T15:27:27.953 に答える
0

Apps Scriptはブラウザオブジェクトとやり取りできないため、GoogleAppsScriptを使用することはできません。

于 2012-12-20T15:16:39.883 に答える