UI를 열려고합니다. 사용자에게 두 변수를 묻는 것입니다. "ok"를 닫고 UI를 닫은 다음 함수를 매개 변수로 그 두 변수와 함께 ...Google 스크립트 : 다른 함수가 실행되는 동안 serverhandler에서 UI를 닫는 방법
내 문제는 ui가 열린 상태로 유지되고 서버 핸들러의 코드가 ui가 열려있을 때까지 루프에서 실행되고 있다는 것입니다. 내 코드에 루프가 표시되지 않으면 UI없이 직접 동일한 함수를 실행하면 잘 처리됩니다 ... 내 처리기에서 뭔가를 놓쳤습니까?
function doGet() {
var app = UiApp.createApplication();
var mygrid = app.createGrid(3, 2);
mygrid.setWidget(0, 0, app.createLabel('Date de début:'));
mygrid.setWidget(0, 1, app.createDateBox().setId('dateA'));
mygrid.setWidget(1, 0, app.createLabel('Date de fin:'));
mygrid.setWidget(1, 1, app.createDateBox().setId('dateB'));
var mybutton = app.createButton('OK');
mybutton.setId("mybutton");
var mypanel = app.createVerticalPanel();
mypanel.setId('mypanel');
mypanel.add(mygrid);
mypanel.add(mybutton);
app.add(mypanel);
var handler = app.createServerHandler('summaryOnDemand');
handler.addCallbackElement(mypanel);
mybutton.addClickHandler(handler);
return app;
}
function summaryOnDemand(e) {
var app = UiApp.getActiveApplication();
var dateA = e.parameter.dateA;
var dateB = e.parameter.dateB;
var panel = app.getElementById('mypanel');
panel.setVisible(false);
app.close();
// var mydoc = SpreadsheetApp.openById("0AiK_IybPWcGcdEV5V2JQUHhtUHp1dEhEN3NuQjdrVWc");
var file = summary(dateA,dateB,true);
var folder = DocsList.getFolderById("0ByK_IybPWcGcX1lUTlRET0dQVXc");
file.addToFolder(folder);
MailApp.sendEmail(Session.getActiveUser().getEmail(),"Rapport réclamation à la demande","Le document ce trouve dans google drive à présent, pour y accéder directement : " + file.getUrl())
return app;
}
이 답변을 주셔서 감사합니다.하지만 webui 페이지가 열려있는 한 serverhandler가 루프에서 실행되는 이유를 이해할 수 있습니까? Thx SB – OpenStove
제공 한 코드에서 아무런 설명도 볼 수 없지만 여기에 표시 한 것보다 처리기 기능이 더 길면 (나는 그것이 ;-) 희망 사항과 관련이있을 수 있습니다 (http : /code.google.com/p/google-apps-script-issues/issues/detail?id=1504) –