Button "Migrar Selecionada" html does not work

31 views
Skip to first unread message

Petrius Fabricio Ferreira

unread,
Feb 23, 2024, 2:07:52 PMFeb 23
to Google Apps Script Community
The script works until it generates the html window with the options, but the button does not migrate the data. What could solve this problem?
Thanks!

Database Spreadsheet  BANCO DE DADOS

Research worksheet PESQUISA
Script:
function buscarEdicaoCadunico() {
  // Obtém a aba ativa no momento da execução
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  // Obtém o valor a ser buscado na célula C5 da aba ativa
  var valorBuscado = sheet.getRange('C5').getValue();

  // Acessar a aba "Centro Pop" e obter os dados
  var ssCentroPop = SpreadsheetApp.openById('1rCfvJuxQV7jJTjQ-kZ-oq1XrO16goWnhyKWN2TWoqaw');
  var abaCentroPop = ssCentroPop.getSheetByName('Centro Pop');
  var dados = abaCentroPop.getRange('D:D').getValues();

  // Encontrar a linha onde o valor buscado está na coluna C
  var linhasEncontradas = [];
  for (var i = 0; i < dados.length; i++) {
    if (dados[i][0] === valorBuscado) {
      linhasEncontradas.push(i + 1); // Adicione 1 para compensar o índice base 0
    }
  }

  if (linhasEncontradas.length > 0) {
    // Se o valor for encontrado, exibir a janela HTML para escolher a entrada a ser migrada
// ...

// Se o valor for encontrado, exibir a janela HTML para escolher a entrada a ser migrada
var html = '<style>label { display: block; margin-bottom: 5px; }</style>';
html += '<h2>Escolha a entrada a ser migrada:</h2>';

for (var i = 0; i < linhasEncontradas.length; i++) {
  var rowData = getEntradaData(linhasEncontradas[i]);
  html += '<label>';
  html += '<input type="radio" name="opcao" value="' + i + '"> Entrada ' + (i + 1);
  html += '<br>';
  html += '<b>Atendente:</b> ' + (rowData[0] || '') + '<br>'; // Se a célula estiver em branco, retorna uma string vazia
  html += '<b>Código:</b> ' + (rowData[1] || '') + '<br>';
  html += '<b>NIS:</b> ' + (rowData[2] || '') + '<br>';
  html += '<b>Responsável:</b> ' + (rowData[3] || '') + '<br>';
  html += '<b>Situação:</b> ' + (rowData[4] || '') + '<br>';
  html += 'Outras informações: ' + (rowData.slice(5, 9).join(', ') || '') + ', ' + (rowData[9] ? formatarData(rowData[9]) : '') + ', ' + (rowData.slice(10).join(', ') || '');
  html += '</label>';
}

html += '<br><button onclick="migrarSelecionada(\'' + i + '\')">Migrar Selecionada</button>';


// ...
    var userInterface = HtmlService.createHtmlOutput(html)
      .setWidth(600)
      .setHeight(300);

    SpreadsheetApp.getUi().showModalDialog(userInterface, 'Seleção de Entrada');
  } else {
    // Se o valor não for encontrado, exibir um alerta
    SpreadsheetApp.getUi().alert('Valor não encontrado na planilha "Centro Pop".');
  }
}

// Função para obter dados de uma entrada na "Centro Pop"
function getEntradaData(linha) {
  var ssCentroPop = SpreadsheetApp.openById('1rCfvJuxQV7jJTjQ-kZ-oq1XrO16goWnhyKWN2TWoqaw');
  var abaCentroPop = ssCentroPop.getSheetByName('Centro Pop');
  return abaCentroPop.getRange(linha, 1, 1, 8).getValues()[0];
}


function migrarSelecionada(indiceOpcao) {
  if (indiceOpcao != null) {
    google.script.run.migrarSelecionada(indiceOpcao);
  } else {
    alert('Selecione uma entrada para migrar.');
  }
  // Obter a planilha ativa no momento da execução
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
 
  // Obter o valor selecionado na janela HTML
  var opcaoSelecionada = document.querySelector('input[name="indiceOpcao"]:checked');

if (opcaoSelecionada) { // Verifique apenas se opcaoSelecionada é válido, sem chamar como função
    var valorSelecionado = opcaoSelecionada.value;
    // Restante do código...
   
    // Obtém os dados da entrada selecionada
    var rowData = getEntradaData(parseInt(valorSelecionado));
   
    // Acessar a aba "Centro Pop" e obter os dados
    var planilhaLink = SpreadsheetApp.openById("1rCfvJuxQV7jJTjQ-kZ-oq1XrO16goWnhyKWN2TWoqaw");
    var abaCentroPop = planilhaLink.getSheetByName("Centro Pop");

    // Para colocar as informações nas células C8:C19 na aba ativa
    for (var i = 0; i < rowData.length; i++) {
    sheet.getRange('C' + (i + 8)).setValue(rowData[i]);
}
    // Excluir a linha correspondente na aba ativa
    sheet.deleteRow(parseInt(valorSelecionado) + 8); // Adicione 8 para compensar as linhas iniciais

    // Substituir a informação da célula C18 na aba ativa pela fórmula especificada
    var formula = '=IFERROR(VLOOKUP(C17;\'NÃO EDITAR!! BASE DE DADOS\'!I:L;2;0);"")';
    sheet.getRange('C18').setFormula(formula);
  } else {
    // Se nenhuma opção for selecionada, exibir um alerta
    SpreadsheetApp.getUi().alert('Por favor, selecione uma entrada para migrar.');
  }
}


// Função para obter dados de uma entrada na "Centro Pop"
function getEntradaData(linha) {
  var ssCentroPop = SpreadsheetApp.openById('1rCfvJuxQV7jJTjQ-kZ-oq1XrO16goWnhyKWN2TWoqaw');
  var abaCentroPop = ssCentroPop.getSheetByName('Centro Pop');
  return abaCentroPop.getRange(linha, 1, 1, 8).getValues()[0];
}
Reply all
Reply to author
Forward
Message has been deleted
0 new messages