-1

GUI内に日付と時刻の両方のピッカーボックスを追加することは可能ですか?

そうでない場合は、日付(ピッカー)用と時間(数値)用の2つの変数を組み合わせて、カレンダーの開始時刻変数として使用することはできますか?

ありがとう!

4

1 に答える 1

2

これはlistBoxesを使用した実用的なソリューションです。スプレッドシートでテストしてください(コピーを作成して使用してください)

function listBoxVersion() {
  var app = UiApp.createApplication().setTitle('Time Picker');
  var main = app.createGrid(2, 4);
  var date = app.createDateBox().setName('date');
  var hour = app.createListBox().setName('hour').setWidth('100');
  var min = app.createListBox().setName('min').setWidth('100');
  for (h=0;h<24;++h){
  if(h<10){var hourstr='0'+h}else{var hourstr=h.toString()}
  hour.addItem(hourstr)
  }
  for (m=0;m<60;++m){
  if(m<10){var minstr='0'+m}else{var minstr=m.toString()}
  min.addItem(minstr)
  }
  var button = app.createButton('validate')
  main.setWidget(0,0,app.createLabel('Choose Date')).setWidget(0,1,app.createLabel('Choose Hours')).setWidget(0,2,app.createLabel('Choose minutes'))
  main.setWidget(1,0,date).setWidget(1,1,hour).setWidget(1,2,min)
  main.setWidget(1,3,button)
  var handler = app.createServerHandler('show').addCallbackElement(main)
  button.addClickHandler(handler)
  app.add(main)
  ss=SpreadsheetApp.getActive()
  ss.show(app)
}

function show(e){
  ss=SpreadsheetApp.getActive()
  ss.getRange('A1').setValue(Utilities.formatDate(e.parameter.date,'GMT+02:00','MMM-dd-yyyy')+'  @ '+e.parameter.hour+':'+e.parameter.min)
  var date = new Date(e.parameter.date);
  date.setHours(e.parameter.hour,e.parameter.min,0)
  ss.getRange('A2').setValue(date)
  }

ここに画像の説明を入力

EDIT:そして、これは通常のテキストボックスを備えた別のバージョンです:(同じテストシートで利用可能)

  function textVersion() {
  var app = UiApp.createApplication().setTitle('Time Picker');
  var main = app.createGrid(2, 4);
  var date = app.createDateBox().setName('date');
  var hour = app.createTextBox().setName('time').setWidth('150');
  var button = app.createButton('validate')
  main.setWidget(0,0,app.createLabel('Choose Date')).setWidget(0,1,app.createLabel('Enter Hours:minutes'))
  main.setWidget(1,0,date).setWidget(1,1,hour);
  main.setWidget(1,3,button)
  var handler = app.createServerHandler('show2').addCallbackElement(main)
  button.addClickHandler(handler)
  app.add(main)
  ss=SpreadsheetApp.getActive()
  ss.show(app)
}

function show2(e){
  ss=SpreadsheetApp.getActive()
  var time = e.parameter.time.split(':')
  var hour = time[0]
  var min = time[1]
  ss.getRange('A1').setValue(Utilities.formatDate(e.parameter.date,'GMT+02:00','MMM-dd-yyyy')+'  @ '+hour+':'+min)
  var date = new Date(e.parameter.date);
  date.setHours(hour,min,0)
  ss.getRange('A2').setValue(date)
  }

ここに画像の説明を入力

于 2013-01-18T06:56:27.090 に答える