试图弄清楚如何在表格中呈现/编辑相关数据,真的可以在正确的方向上使用推送!
从广义上讲,这是关注订阅数据 - 我想知道每个客户每月支付多少费用。如果客户在一年中获得升级 - 我需要数据来反映这一点。
所以,我有一个客户数据库和一个月数据库,有一个多关系。我还有一个"月度分配"与这两者相关的数据库,所以我可以说客户A在2017年6月有40美元,例如。我希望在表格中显示这样的数据,并使数字可编辑:
Jun Jul Aug Sep
Client A 20 20 22 20
Client B 15 20 15 15
Client C null 11 11 12
所以我可以过滤掉几个月(列),我可以过滤掉客户端(行)。任何帮助表示赞赏!
************编辑 - 所以我设法在那里中途。
首先,表的数据源需要客户端 - 因为我希望我的表行按客户端分组。
接下来,该页面有一个自定义属性" datenum"我可以更改以帮助过滤列。
每个列标题现在变为@ datasources.Months.items..MonthName [@ properties.datenum + 在此处插入列号]。随着datenum的更改,列会显示不同的名称。大。
尽管最后一块拼图 - 表中显示的值需要按列标题名称进行过滤。我不能做" [@ properties.datenum + 在此插入列号]"诀窍在这里,如果我错过了一个值..如果我这样做,我可能会意外地获得8月份的Sep值,例如。
真的希望这是有道理的 - 我的第一直觉是创建一个采用行数据源的脚本,以及" MonthName [@ properties.datenum + 在此插入列号]&# 34;,并返回正确的值,但也许我只是误解了绑定是如何工作的,而且这是一种更简单的方法。
答案 0 :(得分:0)
要过滤掉客户端,请查看本教程:https://developers.google.com/appmaker/tutorials/establish-relations/
它展示了如何使用过滤器创建数据查询,这基本上就是您所需要的。
过滤掉列有点困难,至少我还没有想出一个简单的方法。
免责声明:在那里,可能有比这更好的解决方案。这只是为了给你一个想法。
我通过使用名为' isVisible'的自定义属性列表解决了这个问题。对于该表所在的页面。然后我添加了一个名为' ColumnPicker'进入页面。
在ColumnPicker中的每次更改后,我将更改与isVisible同步。每列的可见性(标题和数据部分)都连接到:
@widget.root.properties.isVisible[@widget.childIndex]
因此,使用小部件的索引,我将它与isVisible列表相关联。
以下是同步功能I' m使用:
function syncColumnPickerValuesWithIsVisible(columnPickerWidget, newValues) {
setIsVisibleAllSameValue(columnPickerWidget, false);
newValues.forEach(function(element) {
columnPickerWidget.root.properties.isVisible[element] = true;
});
}
所以在同步中,我首先将所有isVisible值设置为false。然后我使用多选提供的newValues数组将正确的isVisible元素设置为true。
=>从多选中选择的项目在表格中显示为列。