Google App Maker - Экспорт данных из внешней базы данных в определенные ячейки в шаблоне электронной таблицы
Я пытаюсь экспортировать данные или, в этом случае, получить данные из моей внешней базы данных и сразу отредактировать шаблон электронной таблицы с этими данными в списке определенных ячеек. Следует отметить, что я основывался на образце электронной таблицы App Maker.
Это мой текущий пользовательский интерфейс. введите описание изображения здесь
Это клиентский скрипт, который я использую onClick для кнопки Generate.
//------------------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()
функция или есть другой способ?