我有一个我在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的路由列表页面上的属性。 这是帮助澄清的图形:
在路线列表页面上,当点击一行时,我会执行以下操作:
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作为隐藏标签 - 用户不需要查看它。
所有这些对我来说都是合乎逻辑且公平的,但没有记录数据会在编辑页面出现时显示?!这是一个异步计时问题吗?!
答案 0 :(得分:0)
好的,我确实得到了我的&#34;另一次尝试&#34; ,在我的问题上面,正在工作!
我已经使用路由表直接定义了表单数据源,而不是继承自route_id的页面数据源。
我可能已经能够通过添加数据源到路由表来执行此操作,并将复杂查询作为查询构建器代码完成(下面给出了正确的结果):
(Archived = :nuldte) and
(Shift_fk = :shift) and
( (RouteDate = :rtdte) or ( (PUStatus = :done ) and (DOStatus = :nulsts) ) )
注意:&#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);
请注意,此代码不需要页面自定义属性和数据源参数,请随意删除它们以使用该代码段。