从驱动器表中删除数据并自动重新导入新数据

时间:2017-08-16 09:20:28

标签: google-app-maker

我需要帮助,尝试了解如何从表中删除所有数据,然后尝试自动将包含数据的新工作表导入新清除的表格。

我目前正在尝试unload()方法客户端,但这似乎并没有清除我的表

function ClearDown(){
  app.datasources.P11d.unload(function(){});
  console.log('Finish Delete');
}

我还试图创建一个服务器端功能,它似乎也不起作用

function ClearTable(){
  var records = app.models.P11d.newQuery();
//   records.run();
  console.log('Server Function Ran');
  app.deleteRecords(records.run());
}

这是从客户端函数运行的:

function Delete(){
 google.script.run.withSuccessHandler(function(result){
 }).ClearTable();
  console.log('Function Ran');
}

这一切都无济于事

对于导入方面,我尝试过以下操作: - 客户端:

function ImportData(){
  console.log('Begin');
  var ss = SpreadsheetApp.openById('SHEET ID');
  var values = ss.getSheetByName('P11d').getDataRange().getValues();
  var ssData = [];
//   app.datasources.P11d.unload(function(){});
  for (var i = 0; i<values.length; i++){
    var newRecord = app.models.P11d.newRecord();
   // add all fields to the new record
    newRecord.Reg_Number = values[i][0];
    newRecord.Reg_Date = values[i][1];
    newRecord.Model_Description = values[i][2];
    newRecord.P11d_Value = values[i][3];
    newRecord.EngineSize = values[i][4];
    newRecord.Fuel = values[i][5];
    newRecord.CO2 = values[i][6];
    newRecord.SIPP = values[i][7];
    newRecord.GTA_Code = values[i][8];
    newRecord.Type = values[i][9];
    ssData.push(newRecord);
//     console.log(newRecord.MODEL_FIELD);
  }
  console.log('Finished');
// return the array of the model.newRecord objects that would be consumed by the Model query.
}

请有人可以帮忙解决这个问题,目前数据发送给我的方式将新内容添加到云端硬盘表中会造成很多重复。

提前致谢,

2 个答案:

答案 0 :(得分:0)

您可以使用AMU Library

删除电子表格中的所有记录,导入和阅读

将服务器和客户端脚本复制并粘贴到您的应用中。

我相信这会让事情变得更容易!

使用以下方法删除模型中的所有数据: 按钮onClick:

google.script.run.AMU.deleteAllData('ModelName');

删除服务器上记录的正确方法是:

app.models.MODEL_NAME.deleteRecords(key_array); 

datasource.unload()只是卸载客户端上的小部件。它不会影响数据库记录。

在服务器上编写记录查询的更好方法是:

var query = app.models.MODEL_NAME.newQuery(); 
query.filters.your_filter_here;
var records = query.run(); 

请注意,除了计算的模型函数之外,不能使用function posted here返回单个记录或记录数组。 (对于任何json数据,您可以使用stringify返回记录的单个字段。)

我目前正在开发一种解决方案来创建App Maker所需的数据源独立表。

答案 1 :(得分:0)

对于服务器上的删除功能,尝试稍微改变你的代码,这个功能至少用于我,但是我不需要在一段时间内使用它。

function ClearTable(){
  var records = app.models.P11d.newQuery().run();
  console.log('Server Function Ran');
  app.deleteRecords(records);
}