电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

金蝶云星空BOS专题中级课-Web插件.pptx

金蝶云星空BOS专题中级课-Web插件.pptx_第1页
1/38
金蝶云星空BOS专题中级课-Web插件.pptx_第2页
2/38
金蝶云星空BOS专题中级课-Web插件.pptx_第3页
3/38
11993-2019金蝶国际软件集团有限公司④内部公开请勿外传周云2020年7月1993-2018金蝶国际软件集团有限公司金蝶云星空BOS专题中级课Web插件2Content010203总体介绍单据插件列表插件最佳实践04答疑053Content010203总体介绍单据插件列表插件最佳实践04答疑054金蝶云星空分层架构图展示层SilverlightWeb客户端WPF桌面客户端服务层动态表单UI生成服务内核层表单动态生成引擎动态表单控制服务Web服务器动态表单视图模型动态表单控制器动态表单数据模型扩展逻辑层动态表单编程接口表单生成插件表单逻辑服务表单操作缺省值计算函数业务插件动态表单元数据应用服务器动态表单逻辑组件动态表单服务端插件动态表单服务端编程接口数据库服务器元数据业务数据校验规则客户端公共编程模型+客户端插件+第三方设备集成接口移动客户端Office客户端HttpHttp业务服务5常用插件•表单插件•列表插件•表单构建插件•操作服务插件•单据转换插件•反写插件•账表插件6插件接口的继承关系继承层次表单单据单据列表基础资料插件针对对象动态表单单据基础资料7动态表单元数据结构8Content010203总体介绍单据插件列表插件最佳实践04答疑059表单插件抽象基类AbstractBillPlugIn继承动态表单插件基类(AbstractDynamicFormPlugIn)同时实现了IBillViewPlugInIBillModelPlugIn10AbstractDynamicFormPlugIn-重要属性名称描述Context上下文对象View视图层实现接口,负责界面展示等相关操作Model对动态表单的数据模型进行管理11View重要属性名称描述BillBusinessInfo单据的业务逻辑元数据BusinessInfo当前表单对象的逻辑元数据(列表、报表、动态表单、过滤界面等)LayoutInfo布局元数据Model动态表单数据模型接口Context上下文OpenParameter动态表单入口参数PageId当前动态表单唯一标识ParentFormView父窗体动态表单视图接口Session数据缓存区,与其他对象进行简单的数据传递StyleManager返回关联的样式管理器12View常用方法名称描述GetFormOperation获取指定操作编码的的操作实例对象InvokeFormOperation调用表单操作LockField锁定或者解锁字段GetMainBarItem获取主菜单项操作对象GetBarItem获取工具栏、按钮、分录表格菜单项控件编程对象GetControl获取控件编程对象GetFieldEditor获取字段控件编程对象UpdateView刷新界面数据及状态ShowMessage显示消息对话框ShowForm显示动态表单界面(关闭窗体时有回调函数处理)SendDynamicFormAction执行指定动态表单视图的客户端指令InvokeFieldUpdateService执行指定字段的表单服务13Model重要属性14Model常用方法名称描述GetEntryCurrentRowIndex获取分录当前行索引TryGetEntryCurrentRow尝试返回某个分录(Entry)的当前选中的实体GetEntryRowCount获取分录行数量CreateNewEntryRow新建分录数据行DeleteEntryData清除分录数据包InsertEntryRow插入分录行SetValue更新字段值GetValue返回字段值GetEntityDataObject获取单据体(包含子单据体)分录对应的数据集合WriteLog写上机操作日志FuncPermissionAuth判断功能权限15案例演示-表单插件设计一个简易的采购订单演示单据,用来完成采购数据采集,同时编写采购订单表单插件,主要演示以下开发技能;实现功能:1.如何对单据中的不同类型(文本、下拉列表、基础资料等)的字段赋值,多种赋值方式的区别;2.字段值改变时如何加入自定义的逻辑处理;3.单据体的常用操作;4.当前单据如何打开新的其它业务对象窗体,并如何交互;5.常用的取数方式(以及常用的一些工具方法使用);6.如何二开自定义的系统参数;16SetValue为字段赋值;如果是对单据体中的某行的字段赋值,必须带上行号;字段类型值类型文本String小数decimal日期DateTime基础资料DynamicObjec或者基础资料内码(string或long)复选框Bool下拉列表String金额decimal17ShowForm显示动态表单界面;界面类型参数对象类型动态表单Kingdee.BOS.Core.DynamicForm.DynamicFormShowParameter单据维护界面Kingdee.BOS.Core.Bill.BillShowParameter单据列表界面Kingdee.BOS.Core.List.ListShowParameter账表Kingdee.BOS.Core.Report.SysReportShowParameter列表过滤界面Kingdee.BOS.Core.CommonFilter.FilterShowParameter账表过滤界面Kingdee.BOS.Core.ReportFilter.SQLReportFilterShowParameter直接SQL报表Kingdee.BOS.Core.Report.SQLReportShowParameter其他…其他…18字段标识、属性名、字段名字段标识(Key)字段的标识(Key),在当前模型内唯一,不允许重复;除动态实体数据包使用属性名访问数据,其它地方一般用字段标识;属性名(PropertyName)BOS设计的动态表单(或单据、基础资料),在运行时,会自动根据动态表单的元数据模型,建立一个ORM模型,并为每个单据体、字段,在ORM模型中,创建一个属性(基础资料字段等特殊字段,会创建两个属性),并以字段的属性名(PropertyName)命名。如果需要到数据包中,直接读取字段值,需传入字段的属性名(PropertyName);19字段标识、属性名、字段名字段名(FieldName)数据库物理字段名,不容易和其他两个属性概念混淆,只有在sql指令的地方才用得上;注意,该字段如果已经有业务数据了,就不要去修改此字段名,否则可能会导致数据不一致的情况20表单插件事件执行顺序单据新增PreOpenFormOnInitializeServiceOnSetBusinessInfoOnSetLayoutInfoOnCreateDataBinderOnInitializeOnBillInitializeCreateNewDataAfterCreateNewDataAfterCreateModelDataOnLoadBeforeBindDataAfterBindData单据查看/修改PreOpenFormOnInitializeServiceOnSetBusinessInfoOnSetLayoutInfoOnCreateDataBinderOnInitializeOnBillInitializeLoadDataAfterLoadDataOnLoadBeforeBindDataAfterBindData21Content010203总体介绍单据插件列表插件最佳实践04答疑0522列表插件抽象基类AbstractListPlugIn继承动态表单插件基类(AbstractDynamicFormPlugIn)同时实现了IListViewPlugInIListModelPlugIn23列表插件抽象基类-重要属性ListModel模型层访问接口,Model属性做强制转换;ListView视图层访问接口,View属性做强制转换;24列表插件抽象基类-ListView属性名称描述BillBusinessInfo对应单据的逻辑元数据BillLayoutInfo对应单据的布局元数据Model列表对应的模型,强转为IListModelOpenParameter页面打开时传入的参数SelectedRowsInfo当前列表上被选中的行记录,通过复选框勾选的CurrentSelectedRowInfo当前列表上当前选择行记录,直接点击选中的CurrentPageRowsInfo当前列表所有单据的行信息CanDealWithRows可以处理的行数据,可能被插件排除了某些单据ID25列表插件抽象基类-ListModel属性名称描述BillBusinessInfo关联单据的业务逻辑元数据FieldKeyMap列表上显示的字段,其字段名FieldName和字段标识Key的对应关系FilterParameter列表过滤条件参数对象GlobalParameter单据参数配置中配置的单据全局参数ParameterData用户参数数据,一般是选项菜单界面的配置数据Header列表表头对象FieldKeyMap字段和列表所选字段key的映射关系QueryInfo列表查询元数据,包括组织隔离字段、可供查询的实体、字段列表等等Limit每页行数StartRow开始行索引26列表插件抽象基类-ListModel常用方法名称描述GetData(intstartRow,intlimit,boolneedRefreshTree)获取列表数据GetData(intstart,introws,boolneedRefreshTree,stringorderInfo)获取列表数据,带排序GetRow(IDataRowr)获取选中行对象GetGroupInfo(stringgroupRows)获取分组信息GetHeadFieldSummaryData(ListsummaryHeadFields)获取单据头字段的汇总数据GetSummaryData(ListsummaryFields)获取汇总数据(单据体)GetPagingRowCount()列表总行数,为了性能,仅在最后一页取数GetPKData()获取当前列表查询的所有主键数据GetRowCount()获取列表总行数和单据记录数Refresh()刷新列表RefreshByFilter()根据过滤条件,重新取数,刷新列表27案例演示-列表插件以采购订单演示单据为例,编写列表插件,主要演示以下开发技能;实现功能:1.自定义实现对列表附件过滤条件;2.对列表的单元格以及行进行自定义格式化;3.加入自定义菜单,对选中的行进行自定义的操作,并用进度条显示进度;28Content010203总体介绍单据插件列表插件最佳实践04答疑0529最佳实践-元数据不可动态修改运行时,元数据是共享一份缓存,如果修改了,则会影响到其它地方的使用,容易导致各种不确定性的报错;30最佳实践-慎用UpdateView()this.View.UpdateView()会刷新界面所有数据及状态;以下事件中用,可能会导致系统死循环:OnLoad、BeforeBindData、AfterBindData;尽量指定控件标识Key来更新视图31最佳实践-列表格式化性能在FormatCellValue中对列表字段进行格式化时,不要在这个方法里面写SQL;建议将需要的数据一次sql读取完毕,后面再用缓存的方式来进行获取;32最佳实践-SQL执行在表单插件或列表插件中,如果有多条CRUD数据库操作,建议写在同一个事务中防止数据不一致的情况,如果涉及到复杂的业务处理,建议写在服务插件中;33最佳实践-种子表基础资料的主表,种子表只有一个:Z_BAS_Item通常某一单据对应都有种子表,如:Z_GL_VOUCHER。平台提供了取数接口如下:IDBServiceservice=ServiceFactory.GetService(this.context);service.GetSequenceInt64(this.context,表名,种子数量);需要注意的是如果获取基础资料主表的主键,千万记住只能使用Z_BAS_Item而不能使用基础资料自己的Z_主表(去t),否则会出现主键冲突在Oracle数据库下,不管数据库部署了多少台,分配的种子始终是唯一的,但有一点要注意:顺序并非连续的。;34最佳实践-慎用LoadFromCache问题1:查询单据数据使用LoadFromCache,则会导致单据数据被缓存。一旦单据被修改,缓存不能即时更新,将将引发脏数据相关问题。问题2:会导致内存占用过多,引发一系列问题。35最佳实践-插件没生效,如何排查•首先确保插件项目是.net4.0版本;•是否将插件注册到表单插件或列表插件中;•是否将插件dll以及依赖的组件放到website/bin目录下;•第一次加入dll,需要重启站点;•调试插件代码,是否能够命中;36最佳实践-善于利用HttpWatcher客户端和SilverLight端可以通过点击Http数据菜单打开H5端需要在输入HttpWatcher命令后,按回车,再按ctr+alt+f9即可打开37最佳实践-常用工具类名称描述Kingdee.BOS.Util.CacheUtil缓存管理工具类Kingdee.BOS.StringUtils字符串函数工具类Kingdee.BOS.SerializatonUtil序列化相关工具列(如base64,xml等)Kingdee.BOS.ObjectUtils常用对象方法工具类(如对象拷贝等)Kingdee.BOS.Util.EnumHelper枚举工具类Kingdee.BOS.KDConfiguration系统配置工具类(读取common.config中的参数值)38Thanksterimakasih感謝谢谢ありがとうขอบคุ ณ1993-2019金蝶国际软件集团有限公司

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

金蝶云星空BOS专题中级课-Web插件.pptx

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信