如何在 google 应用程序制造商中 'Add / Sum / Total / Calculate' 动态表

How to 'Add / Sum / Total / Calculate' dynamic tables in google app maker

这可能是世界上最简单的事情了,但我似乎无法在 App Maker 中 add/sum/calculate tables。我附上了应用程序预览的图像。我会尽量保持简单。该页面有3个数据源如下:

Apex_customer_po - 这是我们员工输入客户采购订单的地方,包括 PO 编号(字符串),整体PO 的值(数字)和详细信息(字符串)

Apex_customer_po_wo_details - 我们的客户经常将采购订单分解为多个工作订单 (WO),一个任务分解每个任务都有自己的值,包括日期(日期)、WO 编号(字符串)、WO 金额(数字)、详细信息(字符串)

Apex_customer_po_wo_costing - 这是我们跟踪我们完成的工作以及我们使用了多少每个工作订单的钱的地方。这些字段包括参考编号(字符串)、零件价格(数字)、零件详细信息(字符串)、人工小时数(数字)、人工费率(数字)、总人工(数字)和发票总数(数字)、总计工单的所有发票(数量)

我的数据关系如下:

  • Apex_customer_po
  • Apex_customer_po_wo_details (One Apex_customer_po to Many Apex_customer_po_wo_details)
  • Apex_customer_po_wo_costing (One Apex_customer_po_wo_details to Many Apex_customer_po_wo_costing)

显示PO应用预览模式的一般配置。我包括 2 个工作订单,每个工作订单及其相关发票

显示应用页面布局视图的一般配置

我已经知道如何计算我的劳动力成本了:

@datasource.item.Labour_total = @datasource.item.Labour_time * @datasource.item.Labour_rate

我想出了如何计算每张发票的总额:

@datasource.item.Invoice_total = @datasource.item.Parts_amount + (@datasource.item.Labour_time * @datasource.item.Labour_rate)

但我一辈子都想不出如何 'Add / Sum / Total / Calculate' 每个工作订单中的单独发票以获得总价值。

我尝试使用 reduce 和其他一些方法都没有成功,但即使在基本的 1+1 类型计算中,我似乎也无法获得正确的语法。我在应用程序制作方面没有太多经验,但我一直做得很好并且喜欢它......直到现在。

更新 001:

基于以下博客 post,我已经设法获得一个 reduce 函数来为我执行一个简单的 table 添加。 blog.supportgroup.com/google-app-maker-cold-calculations - 球又开始滚动了。现在我需要重新设置我的数据源,将数字更改为字符串 –

更新 002:

我设法让 reduce 功能在我的应用程序中运行。但是,它会汇总数据源中选定单元格的值。例如,我有一个 PO,我们称它为 PO#1,共有 5 件商品,总计 5 美元。当我开始一个新的 PO#2 时,它会继承 PO#1 的总数。所以它计算整个数据源,不管它是 2 个不同的 PO#,我不知道如何让它停止。我用过的代码如下

@datasource.item.Total = getFormatMoney((@datasources.Apex_customer_po_wo_costing.items).reduce((b,a) => Number(a.Parts_amount) + (Number(a.Labour_rate) * Number(a.Labour_time))+ Number(b) , 0   ),2,",",".")

getFormatMoney(),2,",",".") 是客户端 java 格式化货币的脚本

在此先感谢您的帮助。

更新 003:

我现在正在尝试使用计算数据源以不同的方式执行此操作,并且我正在学习本教程:

YouTube 7.33min long - Totals in Drive Tables tutorial

我已逐步重新创建应用程序,但我收到以下关于我的 SQL 查询代码的错误:

E Mon Nov 18 13:38:49 GMT-700 2019 Exception: Malformed SQL. More information: Error with SQL statement: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near var totals = (wholesale:0, retail:0, profit:0); var records = app.models.autos. at line 1.

E Mon Nov 18 13:38:49 GMT-700 2019 Executing query for datasource totals: (Error) : Malformed SQL. More information: Error with SQL statement: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near var totals = (wholesale:0, retail:0, profit:0); var records = app.models.autos. at line 1.

E Mon Nov 18 13:38:49 GMT-700 2019 Executing query for datasource totals failed.

我的数据源中的代码如下:

var totals = {wholesale:0, retail:0, profit:0};

var records = app.models.autos.newQuery().run();

records.forEach(function( item ){
  totals.wholesale += item.wholesale;
  totals.retail += item.retail;
  totals.profit += (item.retail - item.wholesale);
});

var record = app.models.totals.newRecord();
record.wholesale = totals.wholesale;
record.retail = totals.retail;
record.profit = totals.profit;
return [record];

有人知道错误是什么吗?

更新004

成功 - 数据源类型需要是 "Calculated" 类型而不是 "Calculated SQL"。现在我要看看我是否可以将这种新型计算应用于我现有的问题。

我在更新 003 中链接的教程似乎是计算模型路线的继续下去的方式。