《金蝶K3-WISE单据开发知识点.docx》由会员分享,可在线阅读,更多相关《金蝶K3-WISE单据开发知识点.docx(11页珍藏版)》请在第一文库网上搜索。
1、概述单据二次开发是针对现目前单据的一些功能无法满足一些客户的特殊要求,同时分公司又有能力进行二次开发而提出的,这样既可以在现有的系统不做变动的情况下面满足用户的需求,同时也增强了系统的稔定性。注意:本篇所介绍所用到的动态连接库名为:K3Bi11Transfer.d11通过该说明文档,你可以了解到1 .如何通过K3BiHTransfer组件在录单过程中对单据上各项目加以控制。2 .如何通过K3BiHTransfer组件实现自定义功能菜单。3 .如何通过K3BiHTransfer组件控制数据的保存。4 .应用示例。该文档阅读的适用对象需要在K/3工业供需链系统单据上进行二次开发的开发者。属性1.
2、PropertyCnnstringAsString当前数据库的MMTSTropsString连接串。2. PropertySystemNameAsString当前系统名称。3. Property1astInfoAsString最后一次系统返回的各种信息4. PropertyBiIIFormAsObject整个单据窗体对象。可通过该对象访问单据上的任何一个对象,包括控件,菜单。共有的方法有:InsertRow(),在Grid的当前行追加一行,它没有参数。5. PropertyBi1IFuncasObject代表单据对象。目前没什么用途。6. PropertyHeadAsObject单据表头控件,
3、是一个KDTeXt控件数组7. PropertyGridAsObject单据分录控件,为FPSPread控件8. PropertySumGridAsObject单据分录合计控件,为FpSpread控件9. PropertyHeadCt1AsVariant对应表头控件数组,记录每个表头项目各属性的数组如果要改变HeadCH中的某个属性值,需先对HeadCtI做个备份,然后修改此备份的相应属性值,再将此备份赋值给HeadCt1。10. PropertyEntryCt1AsVariant对应分录各列,记录每个分录列各属性的数组如果要改变EntryCt1中的某个属性值,需先对EntryCU做一个备份,
4、然后修改此备份的相应属性值,再将此备份赋值给EnIrya1。11. PropertySaveVectAsKFO.Vector二次开发外部数据存取接口。在录单过程中,用户可将某些数据保存在此VeCtOr中,在单据保存时,再通过二次开发中间层组件,将此VeCtOr中的数据保存到指定位置。SaveVectJtem(I)为一个KFo.Dictionary对象该对象包含以下四个系统数据Savevec11tem(I),Va1ueC1FInterID):单据内码SaveVect.Item(1).Va1ue(,FTransType):单据事务类型SaveVect.Item(1).Va1ue(,ISRedBi1
5、1):是否红字单据SaveVect.Item(1).Va1ue(,Bi1IChecked):是否审核。方法1. FunctionAddUserMenuItem(ByVa1CaptionAsString,ByVa1RootMcnuCaptionAsString=,m)说明:添加一个用户自定义菜单项,系统一共预设了五个菜单项供二次开发使用参数:CaPIiOn:菜单名称RoOIMenUCaPtion:根菜单名称。缺省为“自定义菜单”2. FunctionGetGridTeXt(ByVa1RowAs1ong,ByVa1Co1As1ong)AsString说明:获取分录某单元格的值参数:Row:分录行C
6、o1:分录列3. FunctionGetHeadNUmber(ByVa1Ct1IndexAs1ong)AsString说明:获取表头某项的代码参数:QIIndeX:表头控件索引4. FunctionGetHeadTeXt(ByVa1Ct1IndexAs1ong)AsString说明:获取表头某项的文本参数:C111ndex:表头控件索引5. FunctionGetSUmGridTeXt(ByVa1RowAs1ong,ByVa1Co1As1ong)AsString说明:获取合计行某列的值参数:Row:行。一般为1Co1:分录列6. FunctionSetGridText(ByVa1RowAs1o
7、ng,ByVaICo1As1ong,ByVaIVa1ue,ByVaIInterIDAs1ong=0,ByVaIsNameAsString=AsBoo1ean说明:设置分录某单元格的值,当分录为查找类型时,会把相应的信息一起携带到相应的位置,如当为物料代码时,它会携带物料的一些基本信息物料名称等。参数:Row:分录行Co1:分录列VaIUe:设置的值。如果该单元格是查找类型的,VaIUe应设置为代码。Inter1D:暂未使用SName:暂未使用7. FunctionSetHead(ByVa1IndexAs1ong,ByVaIVa1ue,ByVa1InterIDAs1ong=0J,ByVa1sNa
8、meAsString=,J)AsBoo1ean说明:设置表头某项的值参数:Index:表头控件索引Va1Ue:设置的值。如果该表头项是查找类型的,Va1Ue应设置为代码。Inter1D:暂未使用SName:暂未使用8. FunctionSetSumGridText(ByVa1RowAs1ong,ByVa1Co1As1ong,ByVaIVa1ue)AsBoo1ean说明:设置分录合计某列的值参数:ROW:分录行。一般为1Co1:分录列VaIUe:设置的值。用户可实现自己功能的事件1. Pub1icEventBi11Initia1izeO单据初始化完成时激发该事件2. Pub1icEventBiI
9、1TerminateO单据卸载完成时激发该事件3. Pub1icEventUserMcnuC1ick(ByVa1IndexAs1ong,ByVa1CaptionAsString)当点击用户自定义的菜单时激发这个事件。参数:IndeX:表示第几个菜单、由添加菜单的先后顺序决定,CaP1ion:菜单项的标题,如何添加自定义菜单请参见方法AddUserMenuItem4. Pub1icEvent1eveCe11(ByVaICo1As1ong,ByVaIRowAs1ong,_ByVa1NewCo1As1ong,ByVaiNewRowAs1ong,Cance1AsBoo1ean)当离开分录的一个单元格的
10、时候激发这个事件参数:Co1分录的要离开列Row分录的要离开行NewCo1新的列NewRow新的行Cance1是否取消5. Pub1icEventHeadChange(ByVa1CtIIndexAs1ong,ByVaIVa1ueAsVariant,ByVaIbNewBi11AsBoo1ean,Cance1AsBoo1ean)当表头的一个项目改变时激发这个事件参数:Ct1Index表头字段索引Va1ue当前值bNewBi11是否是新增单据Cance1是否取消6. Pub1icEventGridChange(ByVa)Co1As1ong,ByVaIRowAs1ong,ByVaIVa1ueAsVar
11、iant,ByVaIbNewBi11AsBoo1ean,Cance1AsBoo1ean)当表体的一个项目改变时激发这个事件参数:Co1分录的当前列ROW分录的当前行Va1ue当前值bNewB川是否是新增单据CanCeI是否取消7. Pub1icEventBeforGrid1ookUp(ByVa)RowAs1ongzByVaICo1As1ong,ByVaIH1ookUpCIsIDAs1ongzCance1AsBoo1ean)在分录执行查找功能之前激发这个事件参数:Co1分录的当前列ROW分录的当前行1ookpC1sID当前查询的资料类型,CanCeI是否取消8. Pub1icEventEndGr
12、id1ookUp(ByVa)RowAs1ong,ByVaICo1As1ongzByVaIH1ookUpCIsIDAs1ong)在分录完成查找功能之后激发这个事件参数:Co1分录的当前列ROW分录的当前行1ookpC1sID当前查询的资料类型9. Pub1icEventBeforHead1ookUp(ByVa)CtIIndexAs1ong,ByVaIn1ookUpC1sIDAs1ongzCance1AsBoo1ean)在表头的一个项目执行查找功能之前激发这个事件参数:Ct11ndeX表头字段索引1ookpC1sID当前查询的资料类型CanCeI是否取消10. Pub1icEventEndHead
13、1ookUp(ByVa)CtIIndexAs1ong,ByVaIn1ookUpC1sIDAs1ong)在表头的一个项目完成查找功能之后激发这个事件,参数:CtI1ndeX表头字段索引1ookpC1sID当前查询的资料类型11. Pub1icEventBeforeSave(ByVaIbNewAsBoo1ean,ByRefReturnCodeAs1ong)在单据执行保存功能的时候激发这个事件参数:bNew表示是否是新增单据ReturnCode返回参数失败,结束单据保存;0:成功,继续单据保存1:成功返回,结束单据保存12. Pub1icEventEndSave(ByVa)BiIINoAsStrin
14、g)在单据执行完成保存功能的时候激发这个事件参数:Bi1INO表示单据的编号13. Pub1icEvent1oadBi11End(ByVaIShowTypeAs1ong)在单据装载完成的时候激发这个事件参数:ShowType单据显示状态0.新增1.修改2,查看3.审核14. Pub1icEventNewBiIIEndO在单据新增完成的时候激发这个事件15. Pub1icEventSetMenuBarCt1PropEnd(ByVaIShowTypeAs1ong,ByVaIBiIICheckedAsBoo1ean)在单据设置菜单、工具条各属性完成的时候激发这个事件参数:ShowType单据显示状态
15、0.新增1.修改2,查看3.审核BiIIChecked单据是否已被审核16. Pub1icEventBeforeFi11Bi11Data(ByVa1BiIITransTypeAs1ong,ByVaIBiIIInterIDAs1ong)在装载某张单据之前激发这个事件参数:BiIITransType单据事务类型Bi1IInteHD单据内码17. Pub1icEventEndBiIIFormActiveO在显示单据之后激发这个事件18. Pub1icEventGridFormat(ByVaIDestAs1ong,ByVaICo1As1ong,ByVaIRowAs1ong)在设置单据体格式后激发这个事件参数:DestCo1要设置格式的目标列Row要设置格式的目标行19. Pub1icEventRefreshControIO在设置单据的单元格和单据头的锁定状态后激发这个事件20.