0

スプレッドシートの使用を開始する前に情報をリクエストする必要があります。これは日付範囲です。日付範囲を入力しない場合は、スプレッドシートを閉じる必要があります。

ご協力いただきありがとうございます。

4

2 に答える 2

2

ダイアログを開くトリガーとなる関数を実装onOpen()し、ユーザーが必要な日付範囲を入力しない限り、ダイアログを開いたままにすることができます。ただし、値が入力されていない場合、スプレッドシートを強制的に閉じることはできないと思います。

于 2013-01-28T20:03:38.317 に答える
0

UiApp を使用して UI でこれを行うことができます。条件が検証された場合にのみスプレッドシートへのリンクが表示され、それ以外の場合は要求が拒否されます。

EDIT:これはあなたが始めるための例です:

(条件を定義する必要があります。あなたが完了しなければならない部分をコメントしました...

 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 に答える