微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

确保联接的表与插入的行一起出现

如何解决确保联接的表与插入的行一起出现

我发现很多时候我都会有这样的数据视图

PXSelectJoin<A,LeftJoin<B,ON<A.foreignKey,Equal<B.pk>>>,LeftJoin<C,ON<B.foreignKey,Equal<C.pk>>>> View;

然后我将一行插入到View的后备缓存中:

View.Insert(new A()
    {
        ForeignKey = KeyThatExistsInTheDatabase
    }
)

A行将正确插入,但是即使我在插入的A行中创建了正确的链接,联接表B和C也不会显示在UI中。 UI将仅显示表A中的数据,而联接表中的其余字段将为null。就是这样,直到我按Save /在用户界面中手动更新该行,然后魔术地显示数据。

我尝试过:

View.Select();
View.View.RequestRefresh();

但是这些都不能解决我的问题。插入具有正确外键的行时,有人可靠地能够引入所有联接的表吗?

解决方法

您可以采用以下两种模式之一获取数据记录:合并或只读。如果要查看数据库中未保存的更改以及缓存中的已修改记录,请选择PXSelect

请记住,该框架仅合并数据视图的主DAC的数据记录。
这就是原因,在将更改保存到数据库(“持久”或“保存”按钮)之前,您不会在联接表中看到新记录。

实现目标的可能途径是将数据视图重新定义为PXSelectReadonly。但是在这种情况下,您必须实现自己的记录处理技术。

希望这有助于理解。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。