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

金蝶云星空BOS专题中级课-移动表单及插件.pdf

金蝶云星空BOS专题中级课-移动表单及插件.pdf_第1页
1/63
金蝶云星空BOS专题中级课-移动表单及插件.pdf_第2页
2/63
金蝶云星空BOS专题中级课-移动表单及插件.pdf_第3页
3/63
1李午亮2020年8月金蝶云星空BOS专题中级课移动表单及插件2疑惑控件怎么用?插件怎么写?是选移动表单?还是移动单据?…好多问题???3Content010203总体介绍移动插件移动特性接口最佳实践04答疑054Content010203总体介绍移动插件移动特性接口最佳实践04答疑055移动表单/移动单据移动表单:即移动端的动态表单,页面内容,业务实现完全自定义移动单据:分为单据详情和单据列表,通过绑定来源单据,配置操作,即可完成常用的移动增删改查操作6移动单据/表单–应用场景移动单据配置好来源单据,零代码即可以配置好单据列表、单据详情、单据分录及对应的新增、修改、删除、查看、审核、反审核、保存、提交等操作。满足大部分对单据的需要。应用于:1.需要用到列表和单据详情、已有的功能基本能满足的情况。2.通过列表插件或单据插件就能实现业务需求的情况,列如,单据下推等3…..总之,好用,也会受限于它!移动表单移动单据完成不了的工作,都能可以交给它完成。比如:1.业务审批复杂业务2.报表、图表分析3.待办、已办多列表4.定制化很高的页面5….总之,啥都没有,要啥都得自己造!7移动单据/表单–页面分解字段/控件表单/单据移动BOSBOS内核8Content010203总体介绍移动插件移动特性接口最佳实践04答疑059移动插件继承基类插件业务对象平台移动BOS移动单据单据插件AbstractMobileBillPlugin列表插件AbstractMobileListPlugin移动表单表单插件AbstractMobilePlugin10案例–移动销售订单列表页需求:1.列表数据分为今日订单、全部订单2.支持快捷搜索、高级搜索3.行数据支持查看、修改、删除单据4.支持列表发起新增单据5.按界面设计要求完成开发11案例分析–移动销售订单列表页移动单据列表是否满足功能需要?✘✘✔✔✘期望效果已有效果列表页需求:1.列表数据分为今日订单、全部订单2.支持快捷搜索、高级搜索3.行数据支持查看、修改、删除单据4.支持列表发起新增单据5.按界面设计要求完成开发移动表单+表单插件二开12案例分析–如何用移动表单做销售订单列表页?需要用的控件&事件:13案例开发–用移动表单设计销售订单列表运行时&设计时:【销售订单列表】【高级搜索】14案例开发–用移动表单插件实现销售订单列表功能表单插件基类:AbstractMobilePlugin其继承了动态表单插件基类AbstractDynamicFormPlugIn同时实现了IDynamicFormViewPlugInIDynamicFormModelPlugIn,IMobileModelPlugin,IMobileViewPlugin,15移动表单插件–页签切换(今日订单/全部订单)根据销售订单列表的设计,可以使用页签控件来切换列表数据:页签切换事件:TabItemSelectedChange16移动表单插件–单据体(移动列表)数据加载1.构建列表查询对象参数17移动表单插件–单据体(移动列表)数据加载2.填充列表数据18移动表单插件–单据体(移动列表)关联知识交互事件名称描述行点击EntityRowDoubleClick(EntityRowClickEventArgse)用于:表单插件(单据插件)侧滑点击MobileListSliderClick(MobileListSliderClickEventArgse)用于:表单插件(单据插件)下拉更新GetEntryData(GetEntryDataEventArgse)用于:表单插件(单据插件)行格式化OnFormatRowConditions(ListFormatConditionArgsargs)用于:列表插件非事件格式化列表数据:19移动表单插件–底部菜单/弹窗菜单(触发CRUD)完成销售订单的增删改查1.配置新增、修改、删除20移动表单插件–底部菜单/弹窗菜单(触发CRUD)1.菜单(新增、修改、查看)事件:ButtonClick单据体行点击事件:21移动表单插件–底部菜单/弹窗菜单(触发CRUD)2.菜单(删除)事件:ButtonClick22移动表单插件–底部菜单/弹窗菜单(关联知识)菜单自定义:菜单项样式自定义:23移动表单插件–底部菜单/弹窗菜单(关联知识)控件/字段交互事件名称描述底部菜单点击事件ButtonClick(ButtonClickEventArgse)弹窗菜单按钮图片this.View方法描述GetControl获取控件编程对象(注:其子方法SetCustomPropertyValue很有用,设置属性后会直接发出前端指令)UpdateView刷新界面数据及状态(必须给定Key,避免出现死循环)ShowMessage显示消息对话框(支持普通消息、询问、回调事件)ShowForm显示动态表单界面(关闭窗体时有回调函数处理)传入参数:单据列表:MobileListShowParameter、单据详情:MobileBillShowParameter、自定义表单:MobileShowParameter支持携带自定义参数:mobileShowParameter.CustomParams.Add(“参数”,值);子页面赋值回传:this.View.ReturnToParentWindow(回传的值)24移动表单插件–图片控件(打开高级搜索)2.图片(高级搜索)事件:ButtonClick25移动表单插件–注册表单插件销售订单列表完成26案例–移动销售订单详情页需求:1.详情页分为基本信息(单据头)、订单明细(单据分录)、收款计划(单据分录)2.支持订单明细、收款计划在当前单据的新增、修改、删除3.支持当前单据页面编辑模式下新增、删除附件4.不同模式下显示的操作按钮:新增模式:保存、关闭编辑模式:保存、下推、关闭查看模式:关闭5.按界面设计要求完成开发27案例分析–列表用了移动表单,详情是不是也自己开发?移动单据详情功能比对:✔✔✔✔✔期望效果已有效果详情页需求:1.详情页分为基本信息(单据头)、订单明细(单据分录)、收款计划(单据分录)2.支持订单明细、收款计划在当前单据的新增、修改、删除3.支持当前单据页面编辑模式下新增、删除附件4.不同模式下显示的操作按钮:新增模式:保存、关闭编辑模式:保存、下推、关闭查看模式:关闭5.按界面设计要求完成开发移动单据+单据插件二开28案例演示–如何用移动单据做销售订单详情页?需要用的控件&事件:29案例开发–用移动单据设计销售订单详情页运行时&设计时:【单据头-基础信息】【分录-订单明细】注:支持多代理分录列表已经移动表单开发,这里就不需要设计列表了底部菜单30案例开发–用单据插件实现销售订单详情功能单据插件基类:AbstractMobileBillPlugin其继承了动态表单插件基类AbstractMobilePlugin同时实现了IDynamicFormViewPlugIn,IDynamicFormModelPlugIn,IMobileViewPlugin,IMobileModelPlugin,IMobileBillViewPlugin,IMobileBillModelPlugin,单据插件的基类是表单插件,只是自身携带了来源单据的数据!!!31移动单据插件–附件上传附件上传事件:AfterMobileUpload保存单据后,发起附件上传:UploadFieldBatch()32移动单据插件–附件上传33移动单据插件–附件加载、下载、删除附件删除事件:MobileDeleteFile建议:加载附件是绑定附件的ID,即T_BAS_ATTACHMENT表的ID),这样就可以根据ID下载,不需要在页面加载时就下载所有附件到临时目录,34移动单据插件–附件(关联知识)移动端附件包括:附件控件、单据附件、附件字段即本案例使用的控件35移动单据插件–下推单据转换与PC端的配置相同(BOSIDE-》单据转换)下推关键代码点:1.获取单据转换规则ConvertServiceHelper.GetConvertRule2.调用下推服务ConvertServiceHelper.Push3.单据保存BusinessDataServiceHelper.Save36移动单据插件–下推37移动表单插件–注册表单插件销售订单详情完成38Content010203总体介绍移动插件移动特性接口最佳实践04答疑0539移动特性接口–地图定位:发起定位:this.View.LocateMobileClient(LocationProvider.LBS_PROVIDER,true);定位回调事件:AfterMobileClientLocated(MobileClientLocatedEventArgse)搜索周边:发起搜索:this.View.PoiSearch(latlng,type)搜索结果回调事件:AfterPoiSearch(JSONArraye)40移动特性接口–地图坐标连线(轨迹):this.View.GetControl("地图控件标识").AddPolyline(markerOptions.ToArray())41移动特性接口–扫码扫码:支持云之家、微信、钉钉、自有APP发起扫码:this.View.CodeScan();扫码回调事件:AfterCodeScan(stringe)42移动特性接口–拍照/选择本地文件附件控件设置上传类型即可支持情况:43Content010203总体介绍移动插件移动特性接口最佳实践04答疑0544最佳实践–前端调试F12->手机模拟器进入手机调试界面。切换后最好F5刷新下主要用于:1.开发阶段快速实施2.前端脚本调试3.前端CSS样式调试4.兼容性调试45最佳实践-ShowForm传入参数:单据列表:MobileListShowParameter、单据详情:MobileBillShowParameter、自定义表单:MobileShowParameter打开方式:OpenStyle.ShowType值包括:Default、Floating(带关闭和标题的弹出页)、Modal(无关闭和标题的弹出页)、MobTransferPage(打开新页中转)、MobSelfOpenPage(当前页面跳转)打开停靠(非全屏打开页面):OpenStyle.ShowType值为Floating和Modal时有效。OffsetStyle的值包括:r=右;l=左;t=顶部;b=底部;tr=右上角;tl=左上角;br=右下角;bl=左下角;offset=自定义位置(需设置参数Hoffset和Voffset)Pkey:单据ID46最佳实践–控件属性设置1、可见性设置this.View.GetControl("FButton").SetCustomPropertyValue("visible",true);2、锁定性设置this.View.GetControl("FDate").SetCustomPropertyValue("disabled",true);3、按钮、标签背景色设置this.View.GetControl("FButton").SetCustomPropertyValue("backcolor","115,208,241");4、按钮、标签字体颜色设置this.View.GetControl("FButton").SetCustomPropertyValue("forecolor","255,255,255");5、按钮、标签文本值设置this.View.GetControl("FLable").SetCustomPropertyValue("value","我是标签");6、高度、宽度设置this.View.GetControl("FDocEntity").SetCustomPropertyValue("height",100);this.View.GetControl("FDocEntity").SetCustomPropertyValue("width",320);7、设置页签控件的当前选中页签this.View.GetControl("FTab").SetCustomPropertyValue("selectedIndex",2);8、设置控件背景图片this.View.GetControl("FButton").SetCustomPropertyValue("backgroundurl","img.png");47最佳实践–附件常见问题1.附件上传后PC端没有数据2.在页面加载时能不能不要提前下载所有附件到临时目录如果是附件管理的附件可以直接绑定附件ID,参考贴:https://vip.kingdee.com/article/171366参考贴::https://vip.kingdee.com/article/17136548最佳实践–常用操作数据方法一.获取数据1.BusinessDataServiceHelper.Load2.QueryServiceHelper.GetDynamicObjectCollection3.BusinessDataServiceHelper.LoadSingle二.保存数据BusinessDataServiceHelper.Save三.删除数据BusinessDataServiceHelper.Delete四.加载元数据MetaDataServiceHelper.Load49最佳实践-慎用UpdateView()this.View.UpdateView()会刷新界面所有数据及状态;以下事件中用,可能会导致系统死循环:OnLoad、BeforeBindData、AfterBindData;尽量指定控件标识Key来更新视图50Content010203总体介绍移动插件移动特性接口最佳实践04答疑0551答疑时间答疑52Thanksterimakasih感謝谢谢ありがとうขอบคุณ53附录54移动字段/控件-总览55常用字段/控件–附件控件交互事件名称描述附件上传AfterMobileUpload(MobileUploadEventArgse)用于:表单插件(单据插件)参数中会携带已上传到临时目录的附件数据集合。附件存储支持,0为数据库,1为文件服务,2为亚马逊云,3为金蝶云;附件实际存储、附件数据关联单据及其他自定义业务逻辑都由二开完成附件删除MobileDeleteFile(MobileDeleteFileEventArgse)用于:表单插件(单据插件)参数是被删除附件的数据集合,如果加载附件时绑定了ID,可根据附件ID删除附件赋值:56常用字段/控件–底部菜单、弹窗菜单交互事件名称描述菜单点击ButtonClick(ButtonClickEventArgse)用于:表单插件(单据插件)、列表插件菜单自定义:菜单项样式自定义:57常用字段/控件–其他控件/字段交互事件名称描述页签页签切换TabItemSelectedChange(TabItemSelectedChangeEventArgse)按钮点击事件ButtonClick(ButtonClickEventArgse)图片标签点击事件LabelClick(LabelClickEventArgse)默认不可触发,需反勾选“禁用服务端事件”文本值更新事件DataChanged(DataChangedEventArgse)需勾选“触发值更新”小数整数多行文本数字加减复选框日期系下拉列表系多语言文本基础资料系…58表单插件-View重要属性名称描述BillBusinessInfo单据的业务逻辑元数据BusinessInfo当前表单对象的逻辑元数据(列表、报表、动态表单、过滤界面等)LayoutInfo布局元数据Model动态表单数据模型接口Context上下文OpenParameter动态表单入口参数PageId当前动态表单唯一标识ParentFormView父窗体动态表单视图接口Session数据缓存区,与其他对象进行简单的数据传递59表单插件-View常用方法名称描述GetFormOperation获取指定操作编码的的操作实例对象InvokeFormOperation调用表单操作LockField锁定或者解锁字段GetControl获取控件编程对象(注:其子方法SetCustomPropertyValue很有用,设置属性后会直接发出前端指令)UpdateView刷新界面数据及状态(必须给定Key,避免出现死循环)ShowMessage显示消息对话框ShowForm显示动态表单界面(关闭窗体时有回调函数处理)传入参数:单据列表:MobileListShowParameter、单据详情:MobileBillShowParameter、自定义表单:MobileShowParameter支持携带自定义参数:mobileShowParameter.CustomParams.Add(“参数”,值);子页面赋值回传:this.View.ReturnToParentWindow(回传的值)SendDynamicFormAction执行指定动态表单视图的客户端指令InvokeFieldUpdateService执行指定字段的表单服务InvokeFormOperation执行表单操作(比如保存、修改、提交….)60表单插件-Model常用方法名称描述GetEntryCurrentRowIndex获取分录当前行索引TryGetEntryCurrentRow尝试返回某个分录(Entry)的当前选中的实体GetEntryRowCount获取分录行数量CreateNewEntryRow新建分录数据行DeleteEntryData清除分录数据包InsertEntryRow插入分录行SetValue更新字段值GetValue返回字段值GetEntityDataObject获取单据体(包含子单据体)分录对应的数据集合WriteLog写上机操作日志61列表插件-ListView属性名称描述BillBusinessInfo对应单据的逻辑元数据BillLayoutInfo对应单据的布局元数据Model列表对应的模型,强转为IListModelOpenParameter页面打开时传入的参数SelectedRowsInfo当前列表上被选中的行记录,通过复选框勾选的CurrentSelectedRowInfo当前列表上当前选择行记录,直接点击选中的CurrentPageRowsInfo当前列表所有单据的行信息62列表插件–ListModel属性名称描述BillBusinessInfo关联单据的业务逻辑元数据FieldKeyMap列表上显示的字段,其字段名FieldName和字段标识Key的对应关系FilterParameter列表过滤条件参数对象GlobalParameter单据参数配置中配置的单据全局参数QueryInfo列表查询元数据,包括组织隔离字段、可供查询的实体、字段列表等等Limit每页行数StartRow开始行索引63列表插件-ListModel常用方法名称描述GetData(intstartRow,intlimit,boolneedRefreshTree)获取列表数据GetData(intstart,introws,boolneedRefreshTree,stringorderInfo)获取列表数据,带排序GetRow(IDataRowr)获取选中行对象GetPagingRowCount()列表总行数,为了性能,仅在最后一页取数GetPKData()获取当前列表查询的所有主键数据GetRowCount()获取列表总行数和单据记录数Refresh()刷新列表RefreshByFilter()根据过滤条件,重新取数,刷新列表

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

碎片内容

金蝶云星空BOS专题中级课-移动表单及插件.pdf

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