将数据与小部件关联(不是相反) - SQL数据

时间:2018-02-11 21:33:12

标签: google-app-maker

我有一个我在App Maker中使用的G / SQL云数据。

我有一个包含大量关系数据的表,我需要使用计算的数据源(由于SQL查询复杂性)。这一切都很棒。我已经创建了一个基于表格的页面,其中包含此计算数据的数据源。 它向我展示了我想要查看的所有数据,包括相关数据 - 而不仅仅是主表数据。

但是,我想要一行可点击,以便用户可以编辑原始数据记录。

对于我的生活,我无法获得与编辑页面相关的记录。我的编辑页面是一个完整的页面 - 而不是片段。我已经验证我可以在我的编辑页面中看到键值,但无法在与原始表记录关联的页面上获取小部件!

我甚至尝试过很多东西。 selectKey(),查询ID,甚至使用服务器函数查询键,看看是否会设置记录,所以我可以引用类似的东西: app.datasources.<table>.item.<field> 但是没有去!所有尝试都会出现空记录或查询中的最后一条记录。

更多信息: 我将与编辑页面关联的表作为数据源。我已经尝试了两个引用作为app.datasources ...和widget.datasource ...无济于事。 我使用的数据是一个路由表,其中包含客户提取,下降,服务类型,费率等相关表格。因此,计算出的数据源是路径记录,显示用户客户名称等。单击此记录是我无法关联的使用编辑页面,将数据源设置为未计算的路径表。

另一种尝试: 我在路由表下设置了另一个数据源作为route_id,选择了Query Builder定义为:

id = :route_id

route_id被定义为绑定到名为RouteID的路由列表页面上的属性。 这是帮助澄清的图形: enter image description here

在路线列表页面上,当点击一行时,我会执行以下操作:

var key = widget.children.RouteKey.text;
app.pages.RouteList.properties.RouteID  = parseInt(key);
app.datasources.route_id.load();
app.showPage(app.pages.RouteEdit);

每个行都会加载id值RouteKey作为隐藏标签 - 用户不需要查看它。

所有这些对我来说都是合乎逻辑且公平的,但没有记录数据会在编辑页面出现时显示?!这是一个异步计时问题吗?!

这是我点击一行时看到的内容 [不要将(+)按钮与添加页面混淆。这是一个编辑页面。此按钮只需导航到添加页面] ... enter image description here

2 个答案:

答案 0 :(得分:0)

好的,我确实得到了我的&#34;另一次尝试&#34; ,在我的问题上面,正在工作!
我已经使用路由表直接定义了表单数据源,而不是继承自route_id的页面数据源。

我可能已经能够通过添加数据源到路由表来执行此操作,并将复杂查询作为查询构建器代码完成(下面给出了正确的结果):

(Archived    = :nuldte)  and
(Shift_fk    = :shift) and
( (RouteDate = :rtdte) or ( (PUStatus = :done ) and (DOStatus = :nulsts) ) )

图形: enter image description here

注意:&#34;已存档&#34;用来代替删除。我们从不删除记录

然而,要呈现非常慢,尤其是在移动设备上。 计算出的数据源更快。

答案 1 :(得分:0)

你有没有试过这样的事情:

// onClick row's event handler
var id = widget.datasource.item.id;
var routDs = app.datasources.rout_id;

routDs.query.filters.id._equals = id;
routDs.load();
app.showPage(app.pages.RouteEdit);

请注意,此代码不需要页面自定义属性和数据源参数,请随意删除它们以使用该代码段。

相关问题