UpdateView刷新单据体数据的问题分析处理原创
金蝶云社区-邱育华
邱育华
21人赞赏了该文章 1,237次浏览 未经作者许可,禁止转载编辑于2022年10月08日 17:55:44

一、【问题现象】

1、二次开发,单据插件,在单据保存后,调用this.view.updateview(),或调用this.view.updateview("FEntity"),就是不会刷新单据明细

2、更新数据库数据,表单页面不会同步刷新


二、【原因分析】

二开插件中修改单据数据一般有几种方式

  • 修改this.View.Model.DataObject数据包中的数据

解决方式:调用this.View.UpdateView方法,可以同步刷新页面表单数据


  • 先加载元数据,再通过单据内码获取数据包

FormMetadata metaData = (FormMetadata)MetaDataServiceHelper.Load(this.Context, FormId, true);
DynamicObject obj = BusinessDataServiceHelper.LoadSingle(this.Context, billId, meataData.BusinessInfo.GetDynamicObjectType());
修改obj......
BusinessDataServiceHelper.Save(this.Context, obj);
this.View.UpdateView("单据体标识")

这种方式,并不是直接处理页面数据包,this.View.UpdateView方法,仅使用当前this.View.Model.DataObject刷新数据,并不会到数据库加载数据包刷新界面

解决方式:调用this.View.Refresh();


  • 直接执行SQL语句修改数据库

二开案例.Python插件.表单插件执行SQL


这种方式效果同2类似

解决方式: 调用this.View.Refresh();


赞 21