K3BOS插件开发培训.ppt

上传人:za****8 文档编号:11829644 上传时间:2020-05-03 格式:PPT 页数:69 大小:912.51KB
返回 下载 相关 举报
K3BOS插件开发培训.ppt_第1页
第1页 / 共69页
K3BOS插件开发培训.ppt_第2页
第2页 / 共69页
K3BOS插件开发培训.ppt_第3页
第3页 / 共69页
点击查看更多>>
资源描述
K/3BOS插件开发培训,金蝶软件(中国)有限公司,插件开发概述插件开发基础使用数据包开发插件多级审核其它,提纲,插件的作用实现单据、序时簿、基础资料序时簿中特殊的业务流程处理中间层数据改变时的特殊处理规则个性化的菜单、外观定制;增加自定义的菜单并响应其操作对审核、消息流程的自定义控制.完成无法通过K/3BOS标准功能实现的个性化需求10.2SP2及以后版本加密策略设计时和运行时分开;设计时只加密部署,其他功能都能使用,作用与加密,插件开发环境金蝶K/3v10.2必选安装客户端、K/3BOS,推荐同时安装中间层MicrosoftVisualBasic推荐使用v6.0版本,并且安装SP5MicrosoftWindows2000Server(及以上版本)推荐采用Server类操作系统作为开发、调试操作系统注意:如果要使用“金蝶K/3-BOS插件开发向导”工具,需要采用简体中文操作系统MicrosoftSQLServer2000数据库,开发环境,插件开发注意事项合理的单据设计和流程设计尽量使用BOS的内部逻辑携带当前字段相关基础资料属性到指定列计算定义公式的值并填写到指定列计量单位变化后自动换算数量或单价物料为非批号管理时锁定批号对应列根据物料上数量单价精度设置数量单价精度表达式为真/假时显示/隐藏字段表达式为真/假时锁定/解锁字段单据合法性校验单据被引用后锁定字段条件成立时锁定菜单项,否则解锁菜单项合法性检查,检查字段唯一性,注意事项,总体模型,接口对象BillEvent单据接口ListEvents序时簿接口BaseClassEvent基础资料序时簿辅助对象K3LibNetUserAccount与金蝶K/3交互MenuBarBOSBandsBOSBandBOSToolsBOSTool新增、修改菜单和工具栏BillHeadsBillHeadBillEntrysBillEntryBOSFieldsBOSField单据、单据头、单据体、单据字段操作,插件开发概述插件开发基础使用数据包开发插件多级审核其它,提纲,插件开发向导,VBAddin快速构建客户端单据插件客户端序时簿插件中间层插件功能修改BOS默认菜单新增菜单处理事件标记函数、事件、方法查询,注册文件,VB注册BOS插件向导方法WindowsRegistryEditorVersion5.00HKEY_CURRENT_USERSoftwareMicrosoftVisualBasic6.0AddinsK3BOSPLUGINSADDIN.ConnectFriendlyName=K/3BOSPlugInsMakerVBAddInDescription=K/3BOSPlugInsMakerVBAddInLoadBehavior=dword:00000003CommandLineSafe=dword:00000000,插件开发向导,演示,MenuBar,MenuBar、BOSBands、BOSBand、BOSTools、BOSTool类似于ActiveBar对象的结构,MenuBar是PublicNotCreatable对象在BillEvent、ListEvents、BaseClassEvent对象中包含MenuBar属性使用。例如:DimoMenuBarAsK3ClassEvents.MenuBarSetoMenuBar=BillEventObject.Menubar在BillEvent、ListEvents、BaseClassEvent对象新增事件SubMenuBarInitialize(ByValoMenuBarAsK3ClassEvents.MenuBar)SubMenuBarClick(ByValBOSToolAsK3ClassEvents.BOSTool,CancelAsBoolean),MenuBar,BOSBandsBOSBand,基本和ActiveBar的Bands、Band对象属性、方法一致BOSBands不能使用ForEach方法遍历BOSBand对象可以通过Add方法来新建BOSBand对象。,BOSToolsBOSTool,基本和ActiveBar的Tools、Tool对象属性、方法一致BOSTools不能使用ForEach方法遍历BOSTool对象可以通过Add方法来新建BOSTool对象,BOSTools重点,FunctionAdd(ToolNameAsString)AsBOSTool与ActiveBar的Tools的Add相比可以在任何的BOSTools对象中调用不需要考虑ToolID重复的问题SubInsertBefore(Index,oToolAsBOSTool)Index可以是数字,以表示当前BOSBand上的BOSTool的顺序(与ActiveBar中的方法一致)也可以是一个BOSTool的Name(字符串)SubInsertAfter(Index,oToolAsBOSTool)新增方法,特性与上相同,BOSTool重点,如何给菜单添加图标方法1先使用ToolPicture属性指定一个图标的路径再调用SetPicture(IndexAsLong,MaskColorAsLong)方法Index代表了0-Normal,1-Pressed,2-MouseHover,3-Disabled方法2先调用Clipboard.SetData方法将图片复制到剪贴板再调用PasteToolFace(IndexAsLong,MaskColorAsLong)方法,练习,在检斤单中添加“皮重”和“毛重”。隐藏“插入一行”、“删除一行”和复制行更改mnuDataLookUp的标题为“查看”,K3Lib,是PublicNotCreatable对象在BillEvent、ListEvents、BaseClassEvent对象中包含K3Lib属性使用。例如:DimoK3AsK3ClassEvents.K3LibSetoK3=BillEventObject.K3Lib也可直接使用,如:lUserID=BillEventObject.K3Lib.User.ID,K3Lib重点,FunctionLoadKDString(strGBTextAsString,ResourceFileAsString)AsString根据K3的语言,从指定的K3语言资源包中返回多语言化的资源可以通过ResourceFile参数指定多语言资源包。默认使用BOS的语言资源包FunctionGetData(SQLCodeAsString)AsObject通过SQL语句从中间层访问数据库,返回数据。返回值是ADODB.Recordset类型SubUpdateData(SQLCode)通过SQL语句从中间层访问数据库,更新数据参数SQLCode可以是String(单条SQL语句),也可以是String()(多条SQL语句)FunctionCreateK3Object(ClassStringAsString)AsObject通过这个函数在插件中创建K/3的对象,使得插件可以单独调试,练习,GetDataUpdateData多条SQLCreateK3Object创建K3组件K3ClassTpl.DataSrv,BillHeads、BillEntrys,是PublicNotCreatable对象在BillEvent对象中包含使用。例如:DimoHeadAsK3ClassEvents.BillHeadSetoHead=BillEventObject.BillHeads(1)BillHeads、BillEntrys、BOSFields不能使用ForEach方法遍历对象,BillEntrysBillEntry,单据体对象包含了和单据体相关的属性通过这些属性可以在运行时操作单据体重要属性MaxRowsAsLong可以在运行时调整单据体行数(大于1且小于2000),BillHeadsBillHead,单据头对象V10.2及以前版本只提供1个单据头计划在以后的版本支持多单据头注意事项为了保证在以后版本的升级中便于维护,建议在访问单据头对象前还是先访问Count属性,BOSFieldsBOSField,字段对象每个字段对象,对应单据(包括单据头和单据体)上的每一个字段通过这些属性,可以在运行时操作字段。,BOSField1,注意某些属性值只适用于单据头中的字段FieldTopFieldLeftFieldHeightFieldWidthLabelWidthLabelColorFrameBorderColorFrameBorderFontNameFontSizeFontBoldFontItalicTextColor某些2者都支持TableNameFieldNameCaptionPageLayerFKeyVisibleNeedSaveMustInputFieldLockNote某些只适用于特殊的字段Row仅支持多分录单据体Filter仅支持基础资料字段,BOSField2,注意Visible只有设计时没有设计为“锁定”状态的字段,才可以在运行时更改锁定状态FieldLock只有设计时没有设计为“锁定”状态的字段,才可以在运行时更改锁定状态有些值是取的运行时字段的状态,可能与字段包中相关属性值不同,BOSField3,取值和赋值通过以下属性取值Value内码值。即保存在数据库中的值Number查找类型字段查找值Text显示值。即显示在界面的值通过以下属性赋值Value非查找类型字段赋值使用Number查找类型字段赋值使用赋值包含字典包和界面同时更新,练习,通过BOSField对象更改Caption通过MaxRows方法更改BOS采购入库单的分录数在检斤单中单击毛重时隐藏皮重;单击皮重时隐藏毛重,BillEventListEventsBaseClassEvent,获得对象实例的方法:,BillEventListEventsBaseClassEvent,也可以在同一个类中实现,BillEvent常用事件、方法,事件EventMenuBarInitialize(oMenuBarAsMenuBar)EventMenuBarClick(BOSToolAsBOSTool,CancelAsBoolean)EventAfterNewBill()EventAfterLoadBill()EventAfterCopyBill()EventAfterSelBill(lSelBillTypeAsLong)EventBeforeVerify(bCancelAsBoolean)EventChange(dctAsDictionary,dctFldAsDictionary,ColAsLong,RowAsLong,CancelAsBoolean)方法FunctionGetFieldValue(sKeyAsString,nRowAsLong=-1,ValueTypeAsEnu_ValueType=Enu_ValueType_FFLD)FunctionSetFieldValue(sKeyAsString,vValue,nRowAsLong=-1)AsBooleanFunctionInsertNewRowAndFill(nPageAsLong,nRowAsLong,ParamArrayvFieldsData()AsVariant)AsBooleanFunctionGetDataFld(dctAsDictionary,RowAsLong)AsDictionaryFunctionGetFieldInfoByKey(sKeyAsString,sPKeyAsString,lIndexAsLong)AsDictionaryFunctionRefreshBill()FunctionIsChange()AsBooleanFunctionDeleteEntryData(nPageAsLong)AsBoolean,BillEvent重要的方法,重要的方法FunctionSetFieldValue(sKeyAsString,vValue,nRowAsLong=-1)AsBooleanFunctionGetFieldValue(sKeyAsString,nRowAsLong=-1,ValueTypeAsEnu_ValueType=Enu_ValueType_FFLD)SubSetBillFormCaption(sCaptionAsString)FunctionInsertNewRowAndFill(nPageAsLong,nRowAsLong,ParamArrayvFieldsData()AsVariant)AsBoolean,直接访问单据属性,BillEvent属性(单据相关属性),*不用访问数据包,更快捷,ListEvents常用事件、方法,事件EventMenuBarInitialize(oMenuBarAsMenuBar)EventMenuBarClick(BOSToolAsBOSTool,CancelAsBoolean)EventAfterCopyBillCreateData(srcInterIDAsLong,dctDataAsDictionary)EventAfterDeleteBill(bSuccessAsBoolean,lBillInterIDAsLong,sBillNoAsString,sErrorMessageAsString,bCancelErrorMessageAsBoolean)EventListFillRow(lRowAsLong,RowDataAsObject,HeadDictAsDictionary,CellDataAsString,BackColorAsLong,ContinueRaiseAsBoolean)方法FunctionGetDataFld(dctAsDictionary,RowAsLong=-1)AsDictionaryFunctionGetDataFldbyKey(sFKeyAsString,RowAsLong=-1)AsDictionaryFunctionGetSelectedBillInfo()AsVectorFunctionLoadSelectedBill(BillStatusAsEnu_BillStatusExt)AsBoolean,10.2新增的事件和属性,事件EventListFillRow(lRowAsLong,RowDataAsObject,HeadDictAsDictionary,CellDataAsString,BackColorAsLong,ContinueRaiseAsBoolean)序时簿的行填充事件实际上每个行的每个可见的单元格(字段)的填充都会激发参数:lRowAsLong行号RowDataAsObject本行所有数据的RecoderSet对象HeadDictAsKFO.IDictionary当前单元格(字段)的信息CellDataAsString当前单元格数据。更改此值可以改变单元格的填充值BackColorAsLong当前行的背景色。更改此值可以改变本行的背景色。可以使用RGB函数得到色值ContinueRaiseAsBoolean在下一行该单元格填充的时候是否激发ListFillRow事件。默认为True。更改此值为False,则下一行这个单元格填充的时候不会再激发ListFillRow事件。属性EnableListFillRowEventsAsBooleanListFillRow事件开关默认为False,即不激发ListFillRow事件,BaseClassEvent常用事件、方法,事件EventMenuBarInitialize(oMenuBarAsMenuBar)EventMenuBarClick(BOSToolAsBOSTool,CancelAsBoolean)EventRefreshList()EventListFillRow(lRowAsLong,RowDataAsObject,HeadDictAsDictionary,CellDataAsString,BackColorAsLong,ContinueRaiseAsBoolean)EventClassGroupSelected(ButtonAsLong,ClassGroupTypeAsLong,ClassGroupIDAsLong,ClassGroupFullNumberAsString)方法FunctionSelectClassGroupByID(lClassGroupIDAsLong)AsLongFunctionPitchItemByID(lItemIDAsLong)AsBooleanSubRefreshClassGroups()FunctionGetSelectedClassID()AsLongFunctionGetSelectedItemID()AsLong,练习,InsertNewRowAndFill下拉框使用此方法无效SetFieldValue检斤单中检斤类型由选单决定,如选采购入库单,检斤类型为入库。GetFieldValueChang事件,/*/*描述:单据保存后扩展处理方法/*参数:/*dctClassTypeKFO.Dictionary单据整体信息模板/*dctDataKFO.Dictionary单据数据包dctData(FID)为保存后的单据内码/*dctLinkKFO.Dictionary选单关系模板,无选单为Nothing/*dctTableInfoKFO.Dictionary单据字段模板信息/*sDsnStringK/3标准数据库连接串/*vctClassTypeEntryKFO.Vector单据体模板信息/*备注:可以将该单触发器处理的过程在此函数中处理/*/PublicFunctionBeforeSave(byvalsDsnasstring,_byvaldctClassTypeaskfo.dictionary,_byvalvctClassTypeEntryaskfo.vector,_byvaldctTableInfoaskfo.dictionary,_byvaldctDataaskfo.dictionary,_byvaldctLinkaskfo.dictionary),单据插件-中间层数据保存前的处理,/*/*描述:单据保存后扩展处理方法/*参数:/*dctClassTypeKFO.Dictionary单据整体信息模板/*dctDataKFO.Dictionary单据数据包dctData(FID)为保存后的单据内码/*dctLinkKFO.Dictionary选单关系模板,无选单为Nothing/*dctTableInfoKFO.Dictionary单据字段模板信息/*sDsnStringK/3标准数据库连接串/*vctClassTypeEntryKFO.Vector单据体模板信息/*备注:可以将该单触发器处理的过程在此函数中处理/*/PublicFunctionAfterSave(byvalsDsnasstring,_byvaldctClassTypeaskfo.dictionary,_byvalvctClassTypeEntryaskfo.vector,_byvaldctTableInfoaskfo.dictionary,_byvaldctDataaskfo.dictionary,_byvaldctLinkaskfo.dictionary),单据插件-中间层数据保存后的处理,/*/*描述:单据删除后扩展处理方法/*参数:/*sDsnStringK/3标准数据库连接串/*nClassIDClassTypeID/*dctClassTypeKFO.Dictionary单据整体信息模板/*nInterID传递本次需要删除的ID/*备注:只提供删除表头或者是多分录的表体,不支持单分录表体删除,如果是单分录表体请直接按照表头删除/*/PublicFunctionBeforeDel(ByValsDsnAsString,_ByValnClassIDAsLong,_ByValdctClassTypeAsKFO.Dictionary,_ByValnInterIDAsLong)AsString,单据插件-中间层数据删除前的处理,/*/*描述:单据删除后扩展处理方法/*参数:/*sDsnStringK/3标准数据库连接串/*nClassIDClassTypeID/*dctClassTypeKFO.Dictionary单据整体信息模板/*nInterID传递本次需要删除的ID/*备注:只提供删除表头或者是多分录的表体,不支持单分录表体删除,如果是单分录表体请直接按照表头删除/*/PublicFunctionAfterDel(ByValsDsnAsString,_ByValnClassIDAsLong,_ByValdctClassTypeAsKFO.Dictionary,_ByValnInterIDAsLong)AsString,单据插件-中间层数据删除后的处理,插件开发概述插件开发基础使用数据包开发插件多级审核其它,提纲,KFOK/3BOS中传递数据,主要使用了KFO的2个对象完成关于KFO对象的详细使用,请参考KFO参考手册Vector对象相当于一个一维数组,可以说它是一个不定长且可以是任意数据类型的数组,同样可以通过存取数组元素值进行数据传递,一个元素值可以是RecordSet,也可以是一个任意一个数据或对象Dictionary对象是一个数据字典,字典里可以存放不同的变量,可以给字典里这些变量赋值,或从字典里取出这些变量的值进行数据传递,它可以是任一个变量,也可以是一个对象。在Dictionary对象中主要通过变量名称来进行索引,数据结构,两个关键的数据包dctDataBillEvent:PropertyDataListEvents:EventAfterCopyBillCreateData(srcInterIDAsLong,dctDataAsDictionary)dctTableInfoBillEvent:PropertyTableInfoListEvents:PropertyDataSrv.TableInfoBaseClassEvent:PropertyDataSrv.TableInfo,数据结构,数据结构,dctData包含这个单据对象的详细数据每一个Page对应一个数据对象,如果这个Page是单表或者表头,那么这个数据对象是一个字典,否则这个数据对象就是一个Vector,而Vector的每一个子项均为一个字典每一个数据对象字典包含了这一个页面上数据总和,他的每一个Item均为一个字典(这个字典是最明细的)最明细的数据字典可能包含:FFLD=FFLD肯定都有FDSP=FDSP查找关联类型才有FFND=FFND查找关联类型才有FOLD=FOLD修改单据时才有FMODIFY=FMODIFY修改单据后时才有这五个域,数据结构,数据结构,数据结构,dctTableInfo包含三部份内容所有Item的详细信息,以字典的形式保存,采用Key去查询这个Key是用FTabIndex+Fkey格式化而成所有Page的信息,每一个Page是一个字典包含了这一个Page上组成项的Key这个单据对象的所有Item的Map映射,这是一个字典,数据结构,数据结构,练习,BOS采购订单审核后自动生成一张BOS入库单,表头和表体的数据和BOS采购订单一致。,插件开发概述插件开发基础使用数据包开发插件多级审核其它,提纲,接口预览,适用的插件代理组件:BillEvent、ListEvents属性:MultiCheckMgr(Object)客户端事件:BeforeMultiCheck、MultiCheck、AfterMultiCheck、StartMultiCheck、FinishMultiCheck、UnMultiCheck、AfterUnMultiCheck、BusinessCheck、UnBusinessCheck客户端事件触发顺序:1、StartMultiCheck-BeforeMultiCheck-MultiCheck-AfterMultiCheck-BusinessCheck-FinishMultiCheck2、StartMultiCheck-UnMultiCheck-AfterUnMultiCheck-UnBusinessCheck中间层事件:BeforeMultiCheck、AfterMultiCheck,单据多级审核状态组件,MultiCheckCtl,BeforeMultiCheck,多级审核前事件(主要处理多级审核级次选择)/*参数说明:/*lCheckModeAsLong,审核模式,0=顺序审核;1=会签/*lCheckMaxLevelAsLong,多级审核最大审核级次/*lBusinessLevelAsLong,业务审核级次/*lCheckLevelAsLong,待审核级次/*lCheckStatusAsLong,审核状态标志,等于已经完成的审核级次2次方之和。对于顺序审核,则和中最大的审核级次为当前已审核级次/*lLastCheckFromAsLong,上次完成的审核开始级次/*lLastCheckToAsLong,上次完成的审核结束级次(顺序审核模式对应了当前已经完成的审核级次)/*CancelAsBoolean,是否取消后续操作PublicEventBeforeMultiCheck(ByVallCheckModeAsLong,_ByVallCheckMaxLevelAsLong,_ByVallBusinessLevelAsLong,_ByReflCheckLevelAsLong,_ByVallCheckStatusAsLong,_ByVallLastCheckFromAsLong,_ByVallLastCheckToAsLong,_ByRefCancelAsBoolean),MultiCheck,多级审核事件(主要处理多级审核消息)/*参数说明:/*lCheckModeAsLong,审核模式,0=顺序审核;1=会签/*lCheckMaxLevelAsLong,多级审核最大审核级次/*lBusinessLevelAsLong,业务审核级次/*lCheckLevelAsLong,待审核级次/*lCheckStatusAsLong,审核状态标志/*bSendCheckMessageAsBoolean,是否发送审核消息/*bSendAcceptMessageAsBoolean,是否发送接受上级审核的消息/*sMessageTitleAsString,审核消息标题/*sMessageAsString,审核消息内容/*CancelAsBoolean,是否取消后续操作PublicEventMultiCheck(ByVallCheckModeAsLong,_ByVallCheckMaxLevelAsLong,ByVallBusinessLevelAsLong,_ByVallCheckLevelAsLong,ByVallCheckStatusAsLong,_ByRefbSendCheckMessageAsBoolean,ByRefbSendAcceptMessageAsBoolean,_ByRefsMessageTitleAsString,ByRefsMessageAsString,_ByRefCancelAsBoolean),AfterMultiCheck,多级审核后事件/*参数说明:/*lCheckModeAsLong,审核模式,0=顺序审核;1=会签/*lCheckMaxLevelAsLong,多级审核最大审核级次/*lBusinessLevelAsLong,业务审核级次/*lCheckLevelAsLong,刚完成审核级次/*lCheckStatusAsLong,审核状态标志/*SuccessAsBoolean,多级审核是否成功PublicEventAfterMultiCheck(ByVallCheckModeAsLong,_ByVallCheckMaxLevelAsLong,_ByVallBusinessLevelAsLong,_ByVallCheckLevelAsLong,_ByVallCheckStatusAsLong,_ByValSuccessAsBoolean),StartMultiCheck,启动多级审核事件/*参数说明:/*lCheckModeAsLong,审核模式,0=顺序审核;1=会签/*lCheckMaxLevelAsLong,多级审核最大审核级次/*bSendMessageAsBoolean,是否发送启动审核消息/*CancelAsBoolean,是否取消后续操作PublicEventStartMultiCheck(ByVallCheckModeAsLong,_ByVallCheckMaxLevelAsLong,_ByRefbSendMessageAsBoolean,_ByRefCancelAsBoolean),FinishMultiCheck,单据多级审核完毕事件/*参数说明:/*lCheckModeAsLong,审核模式,0=顺序审核;1=会签/*lCheckMaxLevelAsLong,多级审核最大审核级次/*lBusinessLevelAsLong,业务审核级次/*lCheckStatusAsLong,审核状态标志/*bSendMessageAsBoolean,是否发送审核完成消息PublicEventFinishMultiCheck(ByVallCheckModeAsLong,_ByVallCheckMaxLevelAsLong,_ByVallBusinessLevelAsLong,_ByVallCheckStatusAsLong,_ByRefbSendMessageAsBoolean),UnMultiCheck,驳回审核事件/*参数说明:/*lCheckModeAsLong,审核模式,0=顺序审核;1=会签/*lCheckMaxLevelAsLong,多级审核最大审核级次/*lBusinessLevelAsLong,业务审核级次/*lCheckLevelAsLong,待审核级次/*lCheckStatusAsLong,审核状态标志/*lLastCheckFromAsLong,上次完成的审核开始级次/*lLastCheckToAsLong,上次完成的审核结束级次(顺序审核模式对应了当前已经完成的审核级次)/*bSendMessageAsBoolean,是否发送驳回审核消息/*CancelAsBoolean,是否取消后续操作PublicEventUnMultiCheck(ByVallCheckModeAsLong,_ByVallCheckMaxLevelAsLong,_ByVallBusinessLevelAsLong,_ByVallCheckStatusAsLong,_ByVallLastCheckFromAsLong,_ByVallLastCheckToAsLong,_ByRefbSendMessageAsBoolean,_ByRefCancelAsBoolean),AfterUnMultiCheck,驳回审核后事件/*参数说明:/*lCheckModeAsLong,审核模式,0=顺序审核;1=会签/*lCheckMaxLevelAsLong,多级审核最大审核级次/*lBusinessLevelAsLong,业务审核级次/*lCheckLevelAsLong,刚被驳回审核级次/*lCheckStatusAsLong,审核状态标志/*SuccessAsBoolean,多级审核驳回是否成功PublicEventAfterUnMultiCheck(ByVallCheckModeAsLong,_ByVallCheckMaxLevelAsLong,_ByVallBusinessLevelAsLong,_ByVallCheckLevelAsLong,_ByVallCheckStatusAsLong,_ByValSuccessAsBoolean),BusinessCheck,业务审核事件(审核人、审核日期到单据内字段)/*参数说明:/*CancelAsBoolean,是否取消后续操作PublicEventBusinessCheck(ByRefCancelAsBoolean),UnBusinessCheck,反业务审核事件(清除单据内审核人、审核日期字段内容)/*参数说明:/*CancelAsBoolean,是否取消后续操作PublicEventUnBusinessCheck(ByRefCancelAsBoolean),中间层事件BeforeMultiCheck,保存多级审核路线前事件/*参数:/*nClassIDLong,业务对象事务类型/*nFBillIDLong,业务单据内码/*nFPageLong,业务单据页码/*nFBillEntryID,业务单据分录内码/*dctBillCheckRecord,审核路线数据包,包含了客户端插件附加的数据/*返回:如果返回假,则取消了多级审核(反审核)操作PublicFunctionBeforeMultiCheck(ByValsDsnAsString,_ByValnClassIDAsLong,_ByValnFBillIDAsLong,_OptionalByValnFPageAsLong=1,_OptionalByValnFBillEntryIDAsLong=0,_OptionalByValdctBillCheckRecordAsKFO.Dictionary)AsBoolean,中间层事件AfterMultiCheck,保存多级审核路线后事件/*参数:/*nClassIDLong,业务对象事务类型/*nFBillIDLong,业务单据内码/*nFPageLong,业务单据页码/*nFBillEntryID,业务单据分录内码/*dctBillCheckRecord,审核路线数据包,包含了客户端插件附加的数据/*返回:如果返回假,则取消了多级审核(反审核)操作PublicFunctionAfterMultiCheck(ByValsDsnAsString,_ByValnClassIDAsLong,_ByValnFBillIDAsLong,_OptionalByValnFPageAsLong=1,_OptionalByValnFBillEntryIDAsLong=0,_OptionalByValdctBillCheckRecordAsKFO.Dictionary)AsBoolean,中间层参数描述图,插件开发概述插件开发基础使用数据包开发插件多级审核其它,提纲,相关内容请参考客户化开发知识库关于插件中接口的函数、方法、事件、属性的详细信息,请参考K/3插件开发手册关于KFO组件的函数、方法、属性的详细信息,请参考KFO参考手册,资料,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!