如何在自定义html表单中的日期选择器字段中设置日期、月份和年份-应用程序脚本

y1aodyip  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(445)

我不知道如何填充日期选择器。我有一个功能“编辑数据”,当用户点击这个按钮时,一个自定义html表单就会打开,电子表格的所有数据都会显示在那里。文本字段的部分很简单,只是 TextField.value = data[1] ,但对于日期类型,我不知道如何执行此操作,我的代码是:

function pesquisarContrato(){

 var dashboard = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dashboard');
var planContrato = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Contratos');
var contrato = dashboard.getRange("G3").getValue();
if(contrato == ""){return false;}
var dados = planContrato.getRange(3,1, planContrato.getLastRow(), 27).getValues();

for(var linha = 0; linha<dados.length; linha++) {

  if(dados[linha][0] == contrato) {

      var dados_completos = {}

      dados_completos.id_contrato = dados[linha][0];
      dados_completos.licitacao = dados[linha][1];
      dados_completos.nsipac = dados[linha][2];
      dados_completos.objetivo = dados[linha][3];
      dados_completos.empresa = dados[linha][4];
      dados_completos.cnpj = dados[linha][5];

      //here, I get the day of data with custom function ToDate()
      dados_completos.inicioVigencia = toDate(linha,6)[0];

      return ([dados_completos.id_contrato, dados_completos.licitacao, dados_completos.nsipac, dados_completos.objetivo, dados_completos.empresa, dados_completos.cnpj, dados_completos.inicioVigencia])

    }

 function toDate(linha, coluna){

var planContrato = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Contratos');
var dados = planContrato.getRange(3,1, planContrato.getLastRow(), 27).getValues();

var d = Utilities.formatDate(new Date(dados[linha][coluna]), Session.getScriptTimeZone, "dd/MM/yyyy");
var split = d.split('/');

// Month is zero-indexed so subtract one from the month inside the constructor
var date = new Date(split[2], split[1]-1,split[0]); //Y M D 
var day = date.getDate();;
var month = date.getMonth()+1;
var year = date.getFullYear();

var date_completa = {};

date_completa.day = day;
date_completa.month = month;
date_completa.year = year;

return ([date_completa.day, date_completa.month, date_completa.year])

}

因此,它是.html部分:

<div class="row">

                <div class="input-field col s3">
                    <input id="iniciogarantia" type="date" class="validate">
                    <label for="iniciogarantia">Início da garantia</label>
                </div>
<script>

 google.script.run.withSuccessHandler(pesquisar).pesquisarContrato();

var campoContrato = document.getElementById("contrato");
var campoLicitacao = document.getElementById("licitacao");
var campoSipac = document.getElementById("sipac");
var campoObjetivo = document.getElementById("objetivo");
var campoEmpresa = document.getElementById("empresa");
var campoCnpj = document.getElementById("cnpj");
var campoIniciovigencia = document.getElementById("iniciovigencia");

    function pesquisar(atualizar){

    campoContrato.value = atualizar[0];
    campoLicitacao.value = atualizar[1];
    campoSipac.value = atualizar[2];
    campoObjetivo.value = atualizar[3];
    campoEmpresa.value = atualizar[4];
    campoCnpj.value = atualizar[5]; 

    // this part have an issue, .value don't works for datepicker, so how can I populate this          //field?
    //campoIniciovigencia.? = atualizar[6];

      M.updateTextFields();

    }

</script>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题