Fala, pessoal. Então… Estou com dificuldades em fazer o botão que enviaria um formulário preenchido para uma planilha no Google Sheets e em seguida zeraria os campos, toda a aplicação está rodando no próprio site. Clicando no botão que deveria realizar a ação de registrar o formulário, ele simplesmente exclui o mesmo. Estou utilizando o javascript abaixo de chamada de tela, ação do botão e inserção dos dados do formulário na planilha, respectivamente:
function Formulario() {
// Declaração de vars
var Form = HtmlService.createTemplateFromFile("cadprocesso");
var MostrarForm = Form.evaluate();
// Cria e exibe o formulário de Cad. Processo (620x850)
MostrarForm.setTitle("Cadastro").setHeight(620).setWidth(850);
SpreadsheetApp.getUi().showModalDialog(MostrarForm, "Cadastro");
}
Dentro do HTML do formulário declarado como script temos a declaração de variáveis e a função salvar que posteriormente chamaria o script RegistrarProcesso
var CampoProcesso = document.getElementByID("nprocesso");
var CampoInteressado = document.getElementByID("interessado");
var CampoDataReceb = document.getElementByID("data_recebimento");
var CampoDataInic = document.getElementByID("data_analise");
var CampoAnalista = document.getElementByID("analista");
var CampoStatus = document.getElementByID("status");
var CampoSituacao = document.getElementByID("situacao");
var CampoInfoAux = document.getElementByID("infoauxiliar");
document.getElementByID("salvar").addEventListener("click", Salvar);
function Salvar(){
var processo = CampoProcesso.value;
var interessado = CampoInteressado.value;
var datareceb = CampoDataReceb.value;
var datainic = CampoDataInic.value;
var analista = CampoAnalista.value;
var status = CampoStatus.value;
var situacao = CampoSituacao.value;
var infoaux = CampoInfoAux.value;
var dados = { processo: CampoProcesso.value, interessado: CampoInteressado.value, datareceb: CampoDataReceb.value, datainic: CampoDataInic.value, analista: CampoAnalista.value, status: CampoStatus.value, situacao: CampoSituacao.value, infoaux: CampoInfoAux.value};
google.script.run.RegistrarProcesso(dados);
CampoProcesso.value = "";
CampoInteressado.value = "";
CampoDataReceb.value = "";
CampoDataInic.value = "";
CampoAnalista.value = "";
CampoStatus.value = "";
CampoSituacao.value = "";
CampoInfoAux.value = "";
M.toast({html: 'Novo tramite cadastrado com sucesso!'});
}
Que seria este:
function RegistrarProcesso(dados) {
// Declaração de vars
var Plan = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CAD. DPGT 2019");
var Home = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("INÍCIO");
// Procura a linha para inserir os dados
Plan.getActiveCell();
Plan.getRange('A1').activate();
Plan.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();
Plan.getActiveCell().offset(1, 0).activate();
// Insere os dados na linha
var Linha = Plan.getCurrentCell().getRow();
Plan.getRange(Linha, 1).setValue([dados.datareceb]);
Plan.getRange(Linha, 2).setValue([dados.processo]);
Plan.getRange(Linha, 3).setValue([dados.interessado]);
Plan.getRange(Linha, 4).setValue([dados.datainic]);
Plan.getRange(Linha, 5).setValue([dados.analista]);
Plan.getRange(Linha, 6).setValue([dados.status]);
Plan.getRange(Linha, 7).setValue([dados.situacao]);
Plan.getRange(Linha, 8).setValue([dados.infoaux]);
//Plan.getRange(Linha, 9).setValue([dados.processo]);
//Plan.getRange(Linha, 10).setValue([dados.processo]);
Home.getRange('A1').activate();
}
Por fim o HTML do formulário é este:
<style type="text/css">
html{overflow-y:auto; overflow-x:hidden;}
</style>
<div class="container">
<form>
<div class="row">
<div class="input-field col s6">
<input id="nprocesso" type="text" autocomplete="off" required>
<label for="nprocesso">Nº do Processo</label>
</div>
<div class="input-field col s6">
<input id="interessado" type="text" required>
<label for="interessado">Interessado</label>
</div>
</div>
<div class="row">
<div class="input-field col s6">
<input onkeypress="mascara(this, '##/##/####');return event.charCode >= 48 && event.charCode <= 57" id="data_recebimento" type="text" placeholder="Ex.: dd/mm/aaaa" maxlength="10" autocomplete="off" required>
<label for="data_recebimento">Data de recebimento</label>
<span class="helper-text" data-error="wrong" data-success="right">Data de recebimento do processo no DMOP</span>
</div>
<div class="input-field col s6">
<input onkeypress="mascara(this, '##/##/####');return event.charCode >= 48 && event.charCode <= 57" id="data_analise" type="text" placeholder="Ex.: dd/mm/aaaa" maxlength="10" autocomplete="off" required>
<label for="data_analise">Data de início da pré-análise</label>
<span class="helper-text" data-error="wrong" data-success="right">Data de início da pré-análise pelo técn.</span>
</div>
</div>
<div class="row">
<div class="input-field col s6">
<select id="analista" required>
<option value="" disabled selected>Responsável pela análise</option>
<option value="1">Técnico 1</option>
<option value="2">Técnico 2</option>
<option value="3">Técnico 3</option>
<option value="4">Técnico 4</option>
</select>
</div>
<div class="input-field col s6">
<select id="status" required>
<option value="" disabled selected>Status</option>
<option value="1">Em Análise</option>
<option value="2">Fora de Enquadramento</option>
<option value="3">Deferido</option>
<option value="4">Indeferido</option>
</select>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<textarea id="situacao" class="materialize-textarea" data-length="120" autocomplete="off" required></textarea>
<label for="situacao">Situação</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<textarea id="infoauxiliar" class="materialize-textarea" data-length="120" autocomplete="off"></textarea>
<label for="infoauxiliar">Informações Auxiliares</label>
</div>
</div>
<div class="input-field col s12">
<button id="salvar" type="submit" onclick="self.close()" class="btn waves-effect waves-light">Salvar<i class="material-icons right">send</i></button>
<button id="limpar" type="reset" onclick="self.reset()" class="btn waves-effect waves-light">Limpar<i class="material-icons right">clear_all</i></button>
<button id="cancelar" type="button" onclick="self.close()" class="btn waves-effect waves-light">Cancelar<i class="material-icons right">cancel</i></button>
</div>
</form>
</div>
Nota¹: Eu estou ainda projetando o que isso seria, então pode ser que vocês encontrem mais de um erro, então desde já, aprecio pela compreensão.