二开案例.表单插件.插件代理
【功能介绍】
星空中的插件事件通常都是由插件代理触发,其基本工作原理如下:
创建视图或者模型时,会同步创建插件代理,插件代理会创建元数据中注册的所有插件类型的实例,并完成初始化工作(设置上下文,绑定视图和模型等),插件代理可能还会持有其它各种途径动态注入的插件实例。在视图或模型进行业务或逻辑处理时,当运行到满足某个插件事件触发条件的时候,由插件代理发起对某个事件的调用,调用方式类似:EventsProxy.FireBarItemClick,此时,每个插件实例中的相应事件都会依次执行1次。
例如,主菜单点击事件的触发代码如下:
BarItemClickEventArgs e = new BarItemClickEventArgs(barName, barName, itemKey);
this.EventsProxy.FireBarItemClick(e);
【插件代理继承关系说明】
下面分别介绍星空抽象出来的主要的视图或模型所使用的插件代理的底层继承关系,当我们编写插件时,哪种类型的插件应该继承哪种类型的抽象插件类,其底层逻辑即来源如下面的继承关系。
【动态表单】
DynamicWebFormView.EventsProxy<--DynamicFormViewPlugInProxy<--AbstractDynamicFormPlugIn<--IDynamicFormModelPlugIn, IDynamicFormViewPlugIn, INotePrintPlugIn, IWebApiOperationPlugIn
DynamicFormModel.EventsProxy<--DynamicFormModelPlugInProxy<--AbstractDynamicFormPlugIn<--IDynamicFormModelPlugIn, IDynamicFormViewPlugIn, INotePrintPlugIn, IWebApiOperationPlugIn
【单据】
BillView.EventsProxy<--BillViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractBillPlugIn<--AbstractDynamicFormPlugIn, IBillViewPlugIn, IBillModelPlugIn
BillModel.EventsProxy<--BillModelPlugInProxy<--DynamicFormModelPlugInProxy<--AbstractBillPlugIn<--AbstractDynamicFormPlugIn, IBillViewPlugIn, IBillModelPlugIn
【过滤界面】
CommonFilterView.EventsProxy<--CommonFilterViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractCommonFilterPlugIn<--AbstractDynamicFormPlugIn, ICommonFilterModelPlugIn, ICommonFilterViewPlugIn
FilterModel.EventsProxy<--CommonFilterModelPlugInProxy<--DynamicFormModelPlugInProxy<--AbstractCommonFilterPlugIn<--AbstractDynamicFormPlugIn, ICommonFilterModelPlugIn, ICommonFilterViewPlugIn
【列表】
ListView.EventsProxy<--ListViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractListPlugIn<--AbstractDynamicFormPlugIn, IListViewPlugIn, IListModelPlugIn
ListModel.EventsProxy<--ListModelPlugInProxy<--DynamicFormModelPlugInProxy<--AbstractListPlugIn<--AbstractDynamicFormPlugIn, IListViewPlugIn, IListModelPlugIn
【直接SQL账表】
SQLReportView.EventsProxy<--SQLReportViewPlugInProxy<--AbstractReportViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
【简单账表】
SysReportView.EventsProxy<--SysReportViewPlugInProxy<--AbstractReportViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
SysReportModel.EventsProxy<--SysReportModelPlugInProxy<--DynamicFormModelPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
【树形账表】
TreeReportView.EventsProxy<--SysReportViewPlugInProxy<--AbstractReportViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
TreeReportModel.EventsProxy<--SysReportModelPlugInProxy<--DynamicFormModelPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
【分页账表】
MoveReportView.EventsProxy<--SysReportViewPlugInProxy<--AbstractReportViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
MoveReportModel.EventsProxy<--SysReportModelPlugInProxy<--DynamicFormModelPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
【透视表】
CrossReportView.EventsProxy<--SysReportViewPlugInProxy<--AbstractReportViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
CrossReportModel.EventsProxy<--SysReportModelPlugInProxy<--DynamicFormModelPlugInProxy<--AbstractSysReportPlugIn<--AbstractDynamicFormPlugIn, ISysReportViewPlugIn, ISysReportModelPlugIn
【万能报表】
WNReportView.EventsProxy<--WNReportViewPlugInProxy<--DynamicFormViewPlugInProxy<--AbstractWNReportPlugIn<--AbstractDynamicFormPlugIn, IWNReportViewPlugIn, IWNReportModelPlugIn
WNReportModel.EventsProxy<--WNReportModelPlugInProxy<--DynamicFormModelPlugInProxy<--AbstractWNReportPlugIn<--AbstractDynamicFormPlugIn, IWNReportViewPlugIn, IWNReportModelPlugIn
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.表单插件.插件代理
本文2024-09-23 03:57:57发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162235.html