google-app-maker - 使用 App Maker 在 Google Docs 中创建表格
问题描述
我正在尝试从 App Maker 中的表在 google 文档中创建一个表。到目前为止,我有:
function updateDoco() {
var check = {};
var projectItemQuery = app.models.ProjectItem.newQuery();
var values = projectItemQuery.run();
values.forEach(function(item){
if(!check.hasOwnProperty(item.Project)){
check[item.Project] = true;
var docId = agResponse.id;
var activityGuide = DocumentApp.openById(docId);
var actvityGuideBody = activityGuide.getBody();
for (var i = 0; i<values.length; i++) {
var name = values[i].Name;
var docTitle = actvityGuideBody.insertParagraph(i, name);
docTitle.setHeading(DocumentApp.ParagraphHeading.HEADING1);
}
var steps = app.models.Steps.newQuery();
var activity = steps.run();
activity.forEach(function(steps){
if(!check.hasOwnProperty(steps.Function)){
check[steps.Functions] = true;
var table = actvityGuideBody.appendTable();
for(var n=0; n<activity; n++){
var step = activity[n].Step;
var data = [n, step, ''];
var tr = table.appendTableRow(data);
}
}
});
doc.saveAndClose();
如何将查询结果放入 google doc 中的表中?
谢谢你提供的所有帮助!
解决方案
好的,这是我为您提供解决方案的最佳尝试。我当然会建议预取您的 ProjectItem 步骤,而不是在 for 循环中运行单独的查询。但是,如果您希望在同一个文档中或其他地方有许多表,那么从那里开始您的代码编辑就会有些丢失。但是,这是一个潜在的代码解决方案:
function updateDoco() {
var check = {};
var projectItemQuery = app.models.ProjectItem.newQuery();
projectItemQuery.prefetch.Function._add(); //prefetch for project item to
function relation (many-to-many)
projectItemQuery.prefetch.Function.Steps._add(); //prefetch for function
to steps relation (one-to-many)
var values = projectItemQuery.run();
for (var i in values) {
if(!check.hasOwnProperty(values[i].Project)) {
check[values[i].Project] = true;
}
var docId = agResponse.id;
var activityGuide = DocumentApp.openById(docId);
var activityGuideBody = activityGuide.getBody();
var name = values[i].Name;
var docTitle = activityGuideBody.insertParagraph(i, name);
docTitle.setHeading(DocumentApp.ParagraphHeading.HEADING1);
var functions = values[i].Function;
//loop to run through each function relation on your current ProjectItem
for (var j in functions) {
var rowsdata = [['Step','Description']];
var steps = functions[j].Steps;
//another loop to run through each step to function relation
for (var k in steps) {
rowsdata.push([steps[k].Step,steps[k].Description]);
}
activityGuideBody.appendTable(rowsdata);
}
doc.saveAndClose();
}
}
推荐阅读
- class - Java 8 检查扩展另一个对象的对象的类或实例
- websocket - 根据有效负载从效果中切换最终发出的动作
- java - 嵌套地图上的流
- jquery - 数据表中的自定义过滤器地址和日期范围
- javascript - 更改用户 Firebase 身份验证时触发的事件
- arrays - Xcode Time Profiler 的详细信息面板显示“main”是应用程序运行缓慢的原因,但没有在其中显示单独的方法调用。
- java - 为什么下面的按位运算会产生数值溢出?
- c# - 在 .net core 2.0 中注册多个服务
- php - htaccess 仅重定向主目录
- android - 在开发人员选项中获取触摸形状