这可能是世界上最简单的事情,但是我似乎无法在App Maker中添加/求和/计算表。我已附上应用程序预览的图像。我会尽量保持简单。该页面具有3个数据源,如下所示:
Apex_customer_po-这是我们员工输入的客户购买订单的地方,包括PO编号(字符串),PO的整体价值(编号)和详细信息(字符串)
Apex_customer_po_wo_details-我们的客户经常将采购订单分解成多个工作订单(WO),一个任务将每个任务分解成自己的值,包括日期(date),工作编号(string),工作金额(number),详细信息(字符串)
Apex_customer_po_wo_costing-我们在这里跟踪已完成的工作以及已使用的每个工作订单的资金量。这些字段包括参考编号(字符串),零件价格(编号),零件明细(字符串),工时(编号),人工费率(编号),总人工(编号)和发票总额(编号),工作订单的所有发票(编号)
我的数据关系如下: Apex_customer_po Apex_customer_po_wo_details(一个到很多Apex_customer_po_wo_details的一个Apex_customer_po) Apex_customer_po_wo_costing(一个到很多Apex_customer_po_wo_cost的详细信息)
Shows the general configuration of the Layout view of the app page
我已经弄清楚如何计算我的劳动成本: @ 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 GMT-700 2019异常:SQL格式错误。更多 信息:SQL语句错误:SQL出错 句法;检查与您的MySQL服务器版本相对应的手册 在'var totals =(wholesale:0,retail:0, 利润:0); var records = app.models.autos。”在第1行。
E Mon Nov 18 13:38:49 GMT-700 2019正在执行数据源查询 总计:(错误):格式错误的SQL。详细信息:SQL错误 声明:您的SQL语法有误;检查手册 对应于您的MySQL服务器版本以使用正确的语法 接近'var totals =(批发:0,零售:0,利润:0); var记录= app.models.autos。”在第1行。
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” 。现在,我将查看是否可以将这种新型的计算应用于我现有的问题。
答案 0 :(得分:0)
这似乎是我计算的模型路线,我在Update 003中链接的教程是一条可靠的路径。