金蝶K3工业单据二次开发指导汇总

工业单据二次开发指导汇总


(一)          二次开发组件如何注册到系统中
常用二次开发组件需要注册到系统二次开发组件列表中,物理表为t_thirdPartyComponent,其标结构和相关说明如下:
结构
说明
FTypeID
一般取值为0或2
其中0代表客户端,2代表中间层
FTypeDetailID
一般代表单据的FTranType,还有一些特殊情况如200002,200003等
FIndex
触发次序
FComponentName
客户端二次开发组件名称,如K3Cust.CBillPlugin
FComponentSrv
中间层二次开发组件名称,如K3MCust.CBillPlugin
FDescription
对于插件的作用描述信息
 
(二)          插件开发过程
单据插件主要分为客户端和中间层两大类,说明如下:
1.       客户端二次开发
客户端的二次开发多用于针对单据的界面控制和一些业务操作的控制,主要围绕单据操作对象m_Billtransfer,它的数据包结构需要在二次开发中逐步熟悉,最直接的方法可以在二次开发运行时调试状态直接观察得到,下面就如何实现作一些操作说明:
操作步骤
说明
注意事项
注册
首先在t_thirdPartyComponent中注册二次开发插件
1.FTypeID=0;
2.FTypeDetailID为单据类别;
3.FComponentName为单据客户端插件名称;
创建插件
创建一个VB的DLL组件
1.引用当前版本的k3BillTransfer.dll;
2.定义单据二次开发操作对象,如Private WithEvents m_Billtransfer As k3BillTransfer.Bill;
3.定义公开接口Show(object),将参数赋值给步骤2定义的单据对象
处理单据事件
在单据二次开发对象定义的事件中增加处理逻辑
常见的m_Billtransfer的使用事件有:
AfterLoad\BeforeSave\EndSave\HeadChange等
需要提醒的是EndSave和单据保存的事务已经脱离,一般只用于客户端界面的控制,不在处理更新数据库等操作
部署
编译,部署,注册
 
 
2.       中间层二次开发
l         中间层二次开发主要基于单据业务操作的合法性以及相关业务单据额外处理,主要分为单据保存,单据审核/反审核,单据反写常用三大类反写:
l         保存——业务单据的新增,修改等操作
说明
注意事项
首先在t_thirdPartyComponent中注册二次开发插件
1.FTypeID=2;
2.FTypeDetailID为单据类别;
3.FComponentSrv为单据中间层插件名称;
创建一个VB的DLL组件
插件类必须实现BeginSave和EndSave两个Public接口,这两个接口和单据保存同属于一个事务,不同之处在于BeginSave的校验多基于数据包的校验,此时数据库层还没有该业务单据的记录,而EndSave则不同,此时数据库事务中已经存在该单据的记录。
两个接口参数相同,函数返回值(Boolean)表示保存是否成功,说明如下:
参数1:ByVal sDsn As String  K/3连接串
参数2:ByRef SaveVect As KFO.Vector 保存数据包
参数3:ByRef ReturnMsg As String 如果保存不通过,返回消息
需要特别说明的是在EndSave中常用的SaveVect中值包含单据当前内码=SaveVect(1)("FInterID")

  金蝶K3 WISE金蝶插件开发金蝶二次开发