如何从相关模型记录生成总计字段

我正在尝试研究如何从相关的模型记录中生成总计的字段 .

示例:我有2个Google Drive Table模型(项目和阶段),其中1个项目可以有多个阶段 . Stages模型有许多字段,其中一个是Budget .

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

我真的很难让它工作,并想知道我是否需要创建客户端脚本,服务器脚本或计算模型,或者是否有一种简单的方法直接在绑定中执行此操作 .

以下是我正在尝试构建的一系列屏幕抓取链接,App Maker中的UI和设置:

https://www.dropbox.com/sh/wt00virvn88puyi/AACy7-fPLYFF1H9uFkvEuvgTa?dl=0

回答(2)

3 years ago

Datasource有客户端事件onLoad,因此您可以在此事件中计算值,查找窗口小部件,其中显示该窗口小部件的总数和设置文本 .

3 years ago

在研究了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;
}