【BOS】--页面服务端加载过程原创
金蝶云社区-eris
eris
5人赞赏了该文章 408次浏览 未经作者许可,禁止转载编辑于2024年01月29日 12:02:43

一、说明

维护页面加载过程指已创建的表单,在列表上双击或点击编码打开的过程。此过程包括相关的操作和页面显示加载的过程。

二、相关操作过程

1、解析前端指令

2、单击编码触发点击事件 EntryButtonCellClick

2、列表双击触发事件 ListRowDoubleClick

3、根据单据状态,判断是调用修改操作还是查看操作

3、对操作有效性和权限进行验证

4、触发操作前事件 BeforeDoOperation,可以取消操作

5、创建打开页面参数

6、触发页面打开前事件 PreOpenForm,取消显示打开

7、由于没有返回结果,故不会触发 AfterDoOperation事件

8、返回指令到客户端

三、页面加载过程

1、解析客户端加载页面指令

2、OnInitializeService 允许插件自定义模型服务以实现终级扩展

3、OnSetBusinessInfo 增加事件,以便插件有机会动态改变元数据

4、OnSetLayoutInfo 

5、OnCreateDataBinder

6、OnInitialize  页面初始化BillOpenParameter

7、LoadData 页面加载数据

8、AfterLoadData 页面加载数据后

9、触发页面加载事件 OnLoad

10、初始化权限信息,状态管理,设置菜单状态

11、触发绑定数据前事件 BeforeBindData

12、触发绑定数据后事件 AfterBindData

四、相关代码

pk:为主键

option:为操作选项  OperateOption.Create()

1、通过model加载数据包

var billModel = this.Model as IBillModel;

 billModel.Load(pk);

2、通过APP层读数据包

 BusinessDataServiceHelper.LoadSingleNoDirty(this.Context, pk, this.BusinessInfo.GetDynamicObjectType(), option);

3、通过orm数据层读取数据包

IDbDriver driver = new OLEDbDriver(this.Context);

IDataManager dataManager = DataManagerUtils.GetDataManager(type, driver);

DynamicObject obj = (DynamicObject)dataManager.Read(pk, option);

4、通过DBUtils读数据包,数据包没有结构

DBUtils.ExecuteDynamicObject


赞 5