父单据中嵌入子单据,父单据的页面插件修改子单据数据,页面不更新原创
金蝶云社区-野生的指针
野生的指针
3人赞赏了该文章 1,437次浏览 未经作者许可,禁止转载编辑于2022年11月08日 15:04:57

参考这位同学写的案例,通过BillShowParameter将一个单据嵌入到另一个单据中。

https://vip.kingdee.com/article/161857340805532928?productLineId=29&islogin=true


将子单据嵌入后,在父单据的页面插件中,修改子单据的数据,伪代码如下:


var cache = this.getView().getPageCache();   // 获取页面缓存

var subPageId = cache.get("subPageId");   // 获取子单据的id   (参考上面的链接)

var subView = this.getView().getView(subPageId);  // 获取子单据的view

subView.getModel().setValue("textfield", "123456");   // 给子单据的textfield字段赋值123456


上述代码成功执行后,前端并没有展示修改后的值

经过漫长的debug,发现:如果想要在当前页面修改子页面的数据,必须显式调用this.getView().sendFormAction(subView);才会在前端显示。所以完整的代码为:


var cache = this.getView().getPageCache();   // 获取页面缓存

var subPageId = cache.get("subPageId");   // 获取子单据的id   (参考上面的链接)

var subView = this.getView().getView(subPageId);  // 获取子单据的view

subView.getModel().setValue("textfield", "123456");   // 给子单据的textfield字段赋值123456

this.getView().sendFormAction(subView);


备注:使用以上逻辑跨页面修改数据(比如子页面修改父页面数据),都需要调用this.getView().sendFormAction()

赞 3