Google app maker 如何从相关模型记录生成字段总数

Google app maker 如何从相关模型记录生成字段总数,google-app-maker,Google App Maker,我正在尝试解决如何从相关模型记录生成字段总数的问题 示例:我有两个Google驱动表模型(项目和阶段),其中一个项目可以有多个阶段。阶段模型有许多字段,其中一个字段是预算 我正在尝试如何显示项目总预算,它是与每个项目相关的各个阶段的预算字段的总和 我真的很想让它正常工作,想知道是否需要创建客户端脚本、服务器脚本或计算模型,或者是否有一种简单的方法可以直接在绑定中实现这一点 下面是一个链接,指向我试图构建的一系列屏幕抓图,以及App Maker中的UI和设置: 已加载客户端事件,因此您可以计算此事

我正在尝试解决如何从相关模型记录生成字段总数的问题

示例:我有两个Google驱动表模型(项目和阶段),其中一个项目可以有多个阶段。阶段模型有许多字段,其中一个字段是预算

我正在尝试如何显示项目总预算,它是与每个项目相关的各个阶段的预算字段的总和

我真的很想让它正常工作,想知道是否需要创建客户端脚本、服务器脚本或计算模型,或者是否有一种简单的方法可以直接在绑定中实现这一点

下面是一个链接,指向我试图构建的一系列屏幕抓图,以及App Maker中的UI和设置:


已加载客户端事件,因此您可以计算此事件中的值,查找显示总计的小部件,并设置此小部件的文本。

在研究Andrey的建议和链接后,我通过创建以下客户端脚本使其工作(谢谢!)。每当总数需要重新计算时,我就会调用脚本(例如,现有阶段的onValueChange,以及新的或删除的阶段的onAttach/Detach)。效果很好

function updateProjectTotals() {
    var currentProject = app.datasources.Projects.item;
    var totals = {ProjectName:currentProject.ProjectName, Stages:0, Progress:0, Budget:0};
    var stages = currentProject.Stages;
    stages.forEach(function(item){
        totals.Progress += item.StageProgress;
        totals.Budget += item.StageBudget;  
    });
    totals.Stages = stages.length;
    totals.Progress = (totals.Progress/totals.Stages);
    var record = app.datasources.Projects.item;
    record.ProjectProgress = totals.Progress;
    record.ProjectBudget = totals.Budget;
}

您能否分享更多关于您的UI的详细信息(它是一个包含N个项目的表格,还是一个项目详细信息视图,或者您正在处理一些需要汇总所有项目数据的重新报告视图,等等…)?谢谢Pavel,我已经用更多的细节更新了原始帖子。我还将我对“数据源”的使用改为“模型”。非常感谢您提供的任何帮助/建议。我确实需要汇总所有项目的数据,根据每个项目中阶段的细节计算。实际的应用程序将有更多的类型或汇总报告视图d项目和阶段最终将拥有比上面截图中更多的信息-我只是一步一步地学习AppMaker的方法。如果我能做到这一点,它将成为我的团队使用的业务工作流程的核心部分。至少对于项目列表页面,我建议使用计算数据a来源。你可以在templates()中找到一些很好的示例,特别是在Project Tracker()中。谢谢Andrey!花了一段时间才明白参考手册的意思,但你为我指出了正确的方向来解决它!当你可以将所有阶段都放在一个页面上(或在一个客户请求中加载它们)时,它就会起作用…如果您确实知道,您将始终能够在客户端加载所有阶段,那么这可能是okish解决方案。我建议的唯一改进是将模型属性转换为页面自定义属性(看起来您专门为UI绑定引入了ProjectProgress和ProjectBudget模型字段)。