有什么方法可以找出数据源中的字段?
Any way to find out the fields in a datasource?
我想编写一个脚本,将给定 table 的内容转储到电子表格中,而不考虑字段,(我已经为几个单独的 table 完成了此操作,但想要写一些通用的东西)。
会
app.models.filesToCopy.fields._values;
参与其中?
我想说最通用的方法是建立一个服务器函数并将模型名称作为参数传入。然后建立一个类似于我在下面放置的脚本。如果需要,您甚至可以根据字段类型格式化数据,方法是在 if 或 select 语句中使用 fields[n].type。
function YourFunction(YourModel) {
var sheetfile = SpreadsheetApp.create('test file');
var ss = sheetfile.getActiveSheet();
var fields = app.metadata.models[YourModel].fields;
var results = app.models[YourModel].newQuery().run();
var i, j;
var sheetdata = [], header = [];
for (j in fields) {
header.push(fields[j].displayName);
}
sheetdata.push(header);
for (var i in results) {
var data = [];
for (j in fields) {
data.push(results[i][fields[j].name]);
}
sheetdata.push(data);
}
ss.getRange(1,1,sheetdata.length,fields.length).setValues(sheetdata);
}
我想编写一个脚本,将给定 table 的内容转储到电子表格中,而不考虑字段,(我已经为几个单独的 table 完成了此操作,但想要写一些通用的东西)。
会
app.models.filesToCopy.fields._values;
参与其中?
我想说最通用的方法是建立一个服务器函数并将模型名称作为参数传入。然后建立一个类似于我在下面放置的脚本。如果需要,您甚至可以根据字段类型格式化数据,方法是在 if 或 select 语句中使用 fields[n].type。
function YourFunction(YourModel) {
var sheetfile = SpreadsheetApp.create('test file');
var ss = sheetfile.getActiveSheet();
var fields = app.metadata.models[YourModel].fields;
var results = app.models[YourModel].newQuery().run();
var i, j;
var sheetdata = [], header = [];
for (j in fields) {
header.push(fields[j].displayName);
}
sheetdata.push(header);
for (var i in results) {
var data = [];
for (j in fields) {
data.push(results[i][fields[j].name]);
}
sheetdata.push(data);
}
ss.getRange(1,1,sheetdata.length,fields.length).setValues(sheetdata);
}