0

在开始使用我的电子表格之前我需要请求信息,这是一个日期范围,如果您不输入日期范围,则必须关闭电子表格。

谢谢你的帮助。

4

2 回答 2

2

您可以实现一个onOpen()触发对话框打开的函数,只要用户没有输入您想要的日期范围,对话框就会保持打开状态。如果没有输入任何值,我认为您不能强制关闭电子表格。

于 2013-01-28T20:03:38.317 回答
0

您可以使用 UiApp 在 UI 中执行此操作,只有在验证条件时才会显示指向电子表格的链接,否则它将拒绝请求。

编辑:这是一个让你开始的例子:

(必须定义条件,我评论了必须由您完成的部分......

 function doGet() {
  var app = UiApp.createApplication().setStyleAttribute('padding', '15').setStyleAttribute('background', 'beige').setWidth('300').setHeight('140');// adjust dimensions to your needs  

  var mygrid = app.createGrid(3, 2);
  mygrid.setWidget(0, 0, app.createLabel('StartDate:'));
  mygrid.setWidget(0, 1, app.createDateBox().setId('dateA'));
  mygrid.setWidget(1, 0, app.createLabel('EndDtate:'));
  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);
  var label = app.createHTML('<BR>Your request has been approved, <BR><BR>thanks for submitting').setId('Label').setStyleAttribute('padding', '15').setVisible(false).setWidth('300').setHeight('120');// adjust dimensions to your needs  
  var anchor = app.createAnchor('Open the Spreadsheet', 'https://docs.google.com/spreadsheet/ccc?key=0AnqSFd3iikE3dDljeXhtY3lacUtxdllQbGNHREY0VUE#gid=0').setId('anchor').setVisible(false)
  mypanel.add(label).add(anchor)
  mypanel.add(mybutton);
  app.add(mypanel).add(label);

  var handler = app.createServerHandler('checkDates');
  handler.addCallbackElement(mypanel);
  mybutton.addClickHandler(handler);
   var Chandler = app.createClientHandler();
   Chandler.forTargets(mygrid,mybutton).setVisible(false)
   mybutton.addClickHandler(Chandler)     
  return app;
}

function checkDates(e) {
  var app = UiApp.getActiveApplication();
  var Label = app.getElementById('Label');
  var anchor = app.getElementById('anchor');
  Label.setVisible(true);// show the masking label with message
  var dateA = e.parameter.dateA;
  var dateB = e.parameter.dateB;
// write your condition...  
//  if(dateA)...&& dateB== ...
  anchor.setVisible(true);
  return app
// }else{
app.close
//return app}
}
于 2013-01-28T21:34:54.457 回答