2017-08-16 25 views
0

我需要帮助,试图了解如何从表中删除所有数据,然后尝试自动将新数据表导入新清除的表中。从驱动器表中删除数据并自动重新导入新数据

我目前正试图卸载()方法的客户端,但似乎并没有cleardown我的表

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. 
} 

请有人可以帮助这一点,目前的数据是这样的发送给我添加新的东西到驱动器表中导致许多重复。

由于提前,

+0

我很高兴地宣布,应用设备支持[用delete all选项整个数据库的导入/导出](https://developers.google.com/appmaker/release-notes#import_and_export_relations)现在。 –

回答

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返回单个记录或记录从什么,但计算模型功能的阵列。 (您可以使用stringify为任何json数据返回记录的单个字段。)

我目前正在研究解决方案以创建App Maker中需要的数据源独立表。

+0

我已经看过这个,但我不知道如何让这个按钮上的工作。我在代码中添加了一些额外的日志来跟踪它到达的位置,它似乎运行(非常快),但似乎没有对任何模型做任何事情。 – JustAPo

+0

更新了答案 –

+0

太棒了,非常感谢你。 – JustAPo

0

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

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