您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 2K3 BOS插件开发产品培训0813
版权所有©1993-2008金蝶软件(中国)有限公司K/3BOS插件开发培训演讲人:李望中金蝶软件(中国)有限公司P2版权所有©1993-2008金蝶软件(中国)有限公司提纲插件开发概述案例介绍插件开发基础插件开发向导数据结构K3ClassEvents业务对象接口BillEvent单据接口ListEvents序事簿接口BaseClassEvent基础资料序事簿接口K3ClassEvents公用对象K3Lib常用元数据表结构P3版权所有©1993-2008金蝶软件(中国)有限公司为什么要用插件完成当前版本无法用K/3BOS标准功能实现的需求,插件原理图如下插件的作用实现单据、序时簿、基础资料序时簿中特殊的业务流程处理中间层数据改变时的特殊处理规则个性化的菜单、外观定制;增加自定义的菜单并响应其操作对审核、消息流程的自定义控制插件开发概述P4版权所有©1993-2008金蝶软件(中国)有限公司插件开发环境金蝶K/3v10.1以上的版本必选安装客户端、K/3BOS,推荐同时安装中间层MicrosoftVisualBasic推荐使用vb6.0版本,并且安装SP5MicrosoftWindows2000Server以上版本推荐采用Server类操作系统作为开发、调试操作系统注意:如果要使用“金蝶K/3BOS插件开发向导”工具,需要采用简体中文操作系统MicrosoftSQLServer2000数据库插件开发概述-开发环境介绍P5版权所有©1993-2008金蝶软件(中国)有限公司提纲插件开发概述案例介绍插件开发基础插件开发向导数据结构K3ClassEvents业务对象接口BillEvent单据接口ListEvents序事簿接口BaseClassEvent基础资料序事簿接口K3ClassEvents公用对象K3Lib常用元数据表结构P6版权所有©1993-2008金蝶软件(中国)有限公司ABC公司主营业务是生产和销售各种高档卫浴五金、水暖器材等。拥有五个厂区,产品外销欧美、日本等国家和地区为了统一物流管理,解决重复请购、资金占用严重的问题,ABC公司提出了寄存仓的管理模式,与供应商之间通过统一窗口来管理供应商将物料寄存到ABC公司指定的物流中心仓库,但所有权属供应商ABC公司根据生产实际需求从物流中心领料并进行相应的结算处理案例分析P7版权所有©1993-2008金蝶软件(中国)有限公司解决方案P8版权所有©1993-2008金蝶软件(中国)有限公司演示案例—插件开发需求(一)单据定义寄存入库单新增时默认为2000行在寄存入库单单据上增加复制按钮的浮动按钮,隐藏“页面设置”菜单在寄存入库单序事簿上增加单据变更的菜单及按钮以插件中附带的图片资源文件增加单据变更的显示当单据头金额大于10000时,锁定单据头备注字段当前登录用户只能看到本人制作的寄存入库单寄存入库单新增时给表体赋一行默认值多级审核多级审核业务审核完后仍可修改单据头备注字段单据转换流程寄存入库单下推外购入库单时所选单据部门必须相同P9版权所有©1993-2008金蝶软件(中国)有限公司提纲插件开发概述案例介绍插件开发基础插件开发向导数据结构K3ClassEvents业务对象接口BillEvent单据接口ListEvents序事簿接口BaseClassEvent基础资料序事簿接口K3ClassEvents公用对象K3Lib常用元数据表结构P10版权所有©1993-2008金蝶软件(中国)有限公司插件开发基础—插件开发向导P11版权所有©1993-2008金蝶软件(中国)有限公司KFOK/3BOS中传递数据,主要使用了KFO的2个对象关于KFO对象的详细使用,请参考《KFO参考手册》Vector对象相当于一个一维数组,可以说它是一个不定长且可以是任意数据类型的数组,同样可以通过存取数组元素值进行数据传递,一个元素值可以是RecordSet,也可以是一个任意一个数据或对象Dictionary对象是一个数据字典,字典里可以存放不同的变量,可以给字典里这些变量赋值,或从字典里取出这些变量的值进行数据传递,它可以是任一个变量,也可以是一个对象。在Dictionary对象中主要通过变量名称来进行索引插件开发基础—数据结构P12版权所有©1993-2008金蝶软件(中国)有限公司两个关键的数据包dctDataBillEvent:PropertyDataListEvents:EventAfterCopyBillCreateData(srcInterIDAsLong,dctDataAsDictionary)dctTableInfoBillEvent:PropertyTableInfoListEvents:PropertyDataSrv.TableInfoBaseClassEvent:PropertyDataSrv.TableInfo插件开发基础—业务数据包和单据字典包P13版权所有©1993-2008金蝶软件(中国)有限公司插件开发基础—业务数据包BillEventBillHeadsBillEntrysBillHeadBillEntryBOSFieldsBOSFieldBOSFieldsBOSFielddctData“Page1”“Page2”“Page…”“Pagei”dctFld1dctFld…dctFldnEnu_EntryType_SingleRow“Row1”dctFld1dctFld…dctFldn“Row…”“Rown”Enu_EntryType_MutiRowFDSPFFNDFOLDFMODIFYFFLDsKeysKeyP14版权所有©1993-2008金蝶软件(中国)有限公司dctData包含这个单据对象的详细数据每一个Page对应一个数据对象,如果这个Page是单表或者表头,那么这个数据对象是一个字典,否则这个数据对象就是一个Vector,而Vector的每一个子项均为一个字典每一个数据对象字典包含了这一个页面上数据总和,他的每一个Item均为一个字典(这个字典是最明细的)最明细的数据字典包含五个域:FFLD=FFLD肯定都有FDSP=FDSP查找关联类型才有FFND=FFND查找关联类型才有FOLD=FOLD修改单据时才有FMODIFY=FMODIFY'修改单据后时才有五个域插件开发基础—业务数据包P15版权所有©1993-2008金蝶软件(中国)有限公司插件开发基础—如何访问dctData包(一)P16版权所有©1993-2008金蝶软件(中国)有限公司插件开发基础—如何访问dctData包(二)读取单据头审核日期的值可用以下两种方式:m_billinterface.data(“page1”)(m_billinterface.tableinfo(“map”)(“FCheckDate”))(“FFLD”)m_billinterface.bosheads(1).bosfields(“FCheckDate”).value读取单据体第一行应收数量的值可用以下两种方式:m_billinterface.data(“page2”)(1)(m_billinterface.tableinfo(“map”)(“FMustQty”))(“FFLD”)DimobjasbosfieldDimtmpasdoubleSetobj=m_billinterface.billentrys(1).bosfields(“fmustqty”)Obj.row=1;tmp=obj.valueP17版权所有©1993-2008金蝶软件(中国)有限公司插件开发基础—数据字典包dctTableInfo包含三部份内容所有Item的详细信息,以字典的形式保存,采用Key去查询这个Key是用FTabIndex+Fkey格式化而成所有Page的信息,每一个Page是一个字典包含了这一个Page上组成项的Key这个单据对象的所有Item的Map映射,这是一个字典P18版权所有©1993-2008金蝶软件(中国)有限公司提纲插件开发概述案例介绍插件开发基础插件开发向导数据结构K3ClassEvents业务对象接口BillEvent单据接口ListEvents序事簿接口BaseClassEvent基础资料序事簿接口K3ClassEvents公用对象K3Lib常用元数据表结构P19版权所有©1993-2008金蝶软件(中国)有限公司插件对象模型(BillEvent)K3ClassEventsBillEvent单据接口ListEvents序事簿接口BaseClassEvent基础资料序事簿接口BillEventK3LibNetUserAccountMenuBarBillHeadsBillEntrysBillHeadBillEntryBOSBandsBOSToolsBOSFieldsBOSBandBOSToolBOSFieldsBOSFieldBOSFieldP20版权所有©1993-2008金蝶软件(中国)有限公司BillEvent对象BillEvent对象MenuBar概述BOSBands和BOSBand对象BOSTools和BOSTool对象单据基础对象BillHeads和BillEntrysBOSFields单据接口事件函数、方法属性P21版权所有©1993-2008金蝶软件(中国)有限公司MenuBarActiveBandRefreshBOSBandsBOSTools概述BOSBands、BOSTools对象是PublicNotCreatable对象在BillEvent、ListEvents、BaseClassEvent对象中包含MenuBar属性使用。例如:DimoMenuBarAsK3ClassEvents.MenuBarSetoMenuBar=BillEventObject.Menubar在BillEvent、ListEvents、BaseClassEvent对象新增事件SubMenuBarInitialize(ByValoMenuBarAsK3ClassEvents.MenuBar)SubMenuBarClick(ByValBOSToolAsK3ClassEvents.BOSTool,CancelAsBoolean)P22版权所有©1993-2008金蝶软件(中国)有限公司BOSBands和BOSBand对象BOSBandsAdd(ByValBandNameAsString)AsBOSBandRemove(ByValIndexAsVariant)RemoveAll()Count()AsLongItem(ByValIndexAsVariant)AsBOSBandBOSBandCaptionRefresh()CurrentToolDockingAreaDockingOffsetDockLineFlagsBandNameBOSToolsBandTypeVisibleWrappable基本和ActiveBar的Bands、Band对象属性、方法一致BOSBands不能使用ForEach方法遍历BOSBand对象可以通过Add方法来新建BOSBand对象。P23版权所有©1993-2008金蝶软件(中国)有限公司BOSTools和BOSTool对象基本和ActiveBar的Tools、Tool对象属性、方法一致BOSTools不能使用ForEach方法遍历BOSTool对象可以通过Add方法来新建BOSTool对象BOSToolsAdd(ByValToolNameAsString)AsBOSToolInsertBefore(ByValIndexAsVariant,oToolAsBOSTool)Remove(ByValIndexAsVariant)RemoveAll()Count()AsLongItem(ByValIndexAsVariant)AsBOSToolInsertAfter(ByValIndexAsVariant,oToolAsBOSTool)BOSToolAlignmentSetPicture(B
本文标题:2K3 BOS插件开发产品培训0813
链接地址:https://www.777doc.com/doc-452116 .html