Google App Maker - Экспорт данных из внешней базы данных в определенные ячейки в шаблоне электронной таблицы - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь экспортировать данные или, в этом случае, получить данные из моей внешней базы данных и отредактировать шаблон электронной таблицы с этими данными сразу в списке определенных ячеек.Следует отметить, что я основывался на образце электронной таблицы App Maker.

Это мой текущий пользовательский интерфейс. введите описание изображения здесь

Это клиентский скрипт, который я использую onClick для кнопки генерации

//------------------to call server script
function generate_NC(idnc){
  google.script.run.queryNC_Excel(idnc);
  updateCellValue();
}


//function for button
function GenerateExcel_NC(button) {
  var popup = button.root;
  //popup.visible = false;
    
  var descendants = popup.descendants;
  
  //input value of dropdown 
  var idnc = descendants.id_nc_excel.value.id_nc;  

  console.log(idnc);
  generate_NC(idnc);
  //resetFields_NC(descendants);
}

Я изменил функцию onPageAttach образца электронной таблицы, заменив значение SelectedCell на массив со всеми ячейками, которые необходимо отредактировать (не знаю, будет ли это работать)

function onPageAttach(page) {
  var props = page.properties;

  props.SpreadsheetId = SAMPLE_SPREADSHEET_ID;
  props.Sheets = null;  
  props.SelectedCell = ['Y4','V6','G11','P11','B19','N19','U19','M24','U24','B28','B44','D51','J51','T51','AB51','N53','P55','T55','W55','B58'];
}

В настоящее время я использую приведенный ниже сценарий сервера для вызова данных из моей внешней базы данных, в зависимости от выбранного значения моего раскрывающегося списка.

Этокод сервера для извлечения данных из модели

//------------------------
//function to set value of GLOBAL variable idnc_global with the dropdwon value
function queryNC_Excel(idnc){
  console.log('Getting id nc...');
  idnc_global = idnc;
  console.log(idnc_global);
}


//used to query model
function calculateNoConformidadExcelModel_(query) {
  console.log('Fetching data from no_conformidad with id_nc table for Calculated Model...');

  var queryStr = 'SELECT * FROM no_conformidad WHERE id_nc ='+idnc_global+'';

  var calcRecords = [];
  var connection = getJDBCConnection_();
  var statement = connection.prepareStatement(queryStr);


  try {
    var results = statement.executeQuery();

    while (results.next()) {
      var calcRecord = app.models.NoConformidad.newRecord();
      calcRecord.id_nc = results.getString(1);
      id_no_conformidad = calcRecord.id_nc;
      
      calcRecord.fecha_nc = new Date(results.getString(2));    
      
      
      calcRecord.tipo_nc = results.getString(3);
      calcRecord.productoservicio_nc = results.getString(4);
      calcRecord.detectado_nc = results.getString(5);
      calcRecord.clasificacion_nc = results.getString(6);
      calcRecord.descripcion_nc = results.getString(7);
      calcRecord.solucion_nc = results.getString(8);
      calcRecord.decision_tomada_nc = results.getString(9);
      calcRecord.nom_responsable_nc = results.getString(10);
      calcRecord.tomar_accion_nc = results.getString(11);
      calcRecord.razon = results.getString(12);
      calcRecord.Proceso_id_proceso = results.getInt(13);
      calcRecord.accion_correctiva_id_ac = results.getString(14);
      calcRecords.push(calcRecord);
    }

    results.close();
    statement.close();
  } catch (err) {
    console.error('Unable to fetch data for Calculated Model: ' + err);
  }

  return calcRecords;
}

Я хотел бы знать, как должны быть организованы функции updateCellValue() (клиентский скрипт), setCellValue() (серверный скрипт) и getRange_() образца электронной таблицыустановить значения для нескольких ячеек одновременно.Должен ли я объявить все ячейки в массиве, как указано во фрагменте кода выше для функции onPageAttach(), или есть другой способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...