I don't know how to populate a Datepicker. I have a function "Edit data", when the user clicks on this button, a custom HTML form is opened and all the data of a spreadsheet is showing there. The part of the TextField was easy, was just TextField.value = data[1]
, but for type Date, I don't know how to do this, my code is that:
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 part:
<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>
</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>
Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW
Comments
Post a Comment