将关系数据显示为表

时间:2017-07-10 05:32:04

标签: google-app-maker

试图弄清楚如何在表格中呈现/编辑相关数据,真的可以在正确的方向上使用推送!

从广义上讲,这是关注订阅数据 - 我想知道每个客户每月支付多少费用。如果客户在一年中获得升级 - 我需要数据来反映这一点。

所以,我有一个客户数据库和一个月数据库,有一个多关系。我还有一个"月度分配"与这两者相关的数据库,所以我可以说客户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;,并返回正确的值,但也许我只是误解了绑定是如何工作的,而且这是一种更简单的方法。

1 个答案:

答案 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。

=>从多选中选择的项目在表格中显示为列。