【发布时间】:2020-02-25 16:53:56
【问题描述】:
这可能是世界上最简单的事情,但我似乎无法在应用制作工具中添加/求和/计算表格。我附上了应用程序预览的图像。我会尽量保持简单。该页面有3个数据源如下:
Apex_customer_po - 这是我们员工输入客户采购订单的地方,包括采购订单编号(字符串)、采购订单的总价值(编号)和详细信息 (字符串)
Apex_customer_po_wo_details - 我们的客户经常将采购订单分解为多个工作订单 (WO),每个任务都有自己的值分解,包括日期(日期), WO number (string), WO amount (number), details (string)
Apex_customer_po_wo_costing - 在这里我们跟踪我们完成了哪些工作以及我们使用了每个工作订单的多少资金。这些字段包括参考号(字符串)、零件价格(数字)、零件详细信息(字符串)、人工小时数(数字)、人工费率(数字)、总人工(数字)和发票总额(数字)、总计工单的所有发票(编号)
我的数据关系如下:
- Apex_customer_po
- Apex_customer_po_wo_details(一个 Apex_customer_po 到多个 Apex_customer_po_wo_details)
- Apex_customer_po_wo_costing(一个 Apex_customer_po_wo_details 到多个 Apex_customer_po_wo_costing)
显示 PO 应用预览模式的一般配置。 I 包括 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)
但我一生都无法弄清楚如何“添加/求和/总计/计算”每个工作订单中的各个发票以获得总价值。
我尝试过使用 reduce 和许多其他方法均未成功,但即使在基本的 1+1 类型计算中,我似乎也无法获得正确的语法。我在应用程序制造商方面没有太多经验,但我一直做得很好并且很喜欢它......直到现在。
更新 001:
根据以下博客文章,我设法获得了一个 reduce 函数来为我执行简单的表添加。 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 例外:SQL 格式错误。更多的 信息:SQL 语句出错:您的 SQL 中有错误 句法;检查与您的 MySQL 服务器版本相对应的手册 在第 1 行的
var totals = (wholesale:0, retail:0, profit:0); var records = app.models.autos.附近使用正确的语法。E Mon Nov 18 13:38:49 GMT-700 2019 执行数据源查询 总计:(错误):SQL 格式错误。详细信息:SQL 错误 语句:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 1号线
var totals = (wholesale:0, retail:0, profit:0); var records = app.models.autos.附近。E Mon Nov 18 13:38:49 GMT-700 2019 执行数据源查询 总计失败。
我的数据源中的代码如下:
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
成功 - 数据源类型必须是 “计算” 类型,而不是 “计算 SQL”。现在我要看看我是否可以将这种新类型的计算应用于我现有的问题。
【问题讨论】:
-
您考虑过计算的 SQL 数据源吗?您可以在 SQL 查询中进行计算。
-
@MarkusMalessa 我没有。我不知道我需要走那么远的兔子洞。我在这个平台上没有很多经验,似乎它可能是我缺少的一些简单的东西。我现在正在 App Maker 帮助文件中查看它。看起来像一座山要爬增加1+1
-
更新。根据以下博客文章,我设法获得了一个 reduce 函数来为我执行简单的表添加。 blog.supportgroup.com/google-app-maker-cold-calculations - 球又开始滚动了。现在我需要重新设置数据源的设置方式,将数字更改为字符串
-
更新:我设法让 reduce 函数在我的应用程序中工作。但是,它汇总了数据源中选定单元格的值。例如,我有一个 PO,我们称之为 PO#1,有 5 个项目,总计 5 美元。当我开始一个新的 PO#2 时,它会结转 PO#1 的总数。所以它计算整个数据源,不管它是 2 个不同的 PO#,我不知道如何让它停止。
-
由于您现在正在使用一些实际代码,因此我将编辑问题以包含您的代码。
标签: google-app-maker