金蝶二次开发-K3插件开发-指导手册(初稿).doc_第1页
金蝶二次开发-K3插件开发-指导手册(初稿).doc_第2页
金蝶二次开发-K3插件开发-指导手册(初稿).doc_第3页
金蝶二次开发-K3插件开发-指导手册(初稿).doc_第4页
金蝶二次开发-K3插件开发-指导手册(初稿).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

插件开发指导手册金蝶 K/3 BOS V10.1插件开发指导手册金蝶软件(中国)有限公司2004.9第13页目 录打个小广告:金蝶二次开发技术交流QQ群 群30121062 已满 群28307002 未满 群待定 大家共同学习共同进步1开发基础31.1插件开发概念31.2插件开发配置32开发指南42.1创建一个金蝶 K/3 BOS 插件42.1.1创建一个金蝶 K/3 BOS 客户端事件插件42.1.2创建一个金蝶 K/3 BOS 中间层事件插件92.2自定义金蝶 K/3 BOS 标准菜单、工具栏112.3添加新的菜单、工具栏122.4添加新的事件、方法122.5访问中间层和数据库122.6保存数据123参考133.1客户端插件事件、方法、属性133.2中间层插件事件133.3判断业务对象引用存储过程133.4金蝶K/3 BOS数据库结构134示例134.1XXX131开发基础1.1插件开发概念金蝶K/3运行平台为金蝶K/3 BOS开发的业务单据提供了稳定、标准的运行环境,但为了实现客户更加个性化的需求和保持金蝶K/3 BOS架构的开放性,还为客户化开发提供了插件编程机制:通过金蝶K/3 BOS业务单据和序时簿事件代理组件,把业务单据处理的关键事件接口抛出,客户可以接收这个事件代理组件,并对组件的抛出事件编程,从而实现个性化的事件处理方法,对金蝶K/3 BOS运行平台进行有效的扩充和扩展。需要注意的是:a) 当前版本的金蝶 K/3 BOS支持的插件,仅应用在金蝶K/3的GUI版本,不支持WEB版本;b) 当前版本的金蝶 K/3 BOS支持采用 Microsoft Visual Basic 编写的插件,采用的类型推荐为 ActiveX DLL 类型;c) 当前版本的金蝶 K/3 BOS支持的插件分为客户端事件插件、中间层事件插件;在本手册中,我们所有关于金蝶 K/3 BOS插件的定义、描述、示例等,都符合上述3点特征。1.2插件开发配置开发、调试金蝶 K/3 BOS插件,需要安装:a) 金蝶 K/3 客户端部件b) 金蝶 K/3 BOSc) Microsoft Visual Basic(推荐使用 v6.0 版本,并且安装 SP5)另外,如果要通过插件在K/3 BOS标准单据、序时簿界面上增加菜单、工具条,还需要安装:d) Data Dynamics ActiveBar ActiveX v1.0.6.5同时,我们推荐:a) 采用Microsoft Windows 2000 Server(及以上版本)等Server类操作系统作为开发、调试操作系统;b) 在该操作系统上安装Microsoft SQL Server 2000数据库;c) 在该操作系统上安装金蝶 K/3 客户端部件、金蝶 K/3 中间层部件、金蝶 K/3 BOS;这样,我们就可以同时开发、调试金蝶 K/3 BOS客户端事件插件和金蝶 K/3 BOS中间层插件了。2开发指南2.1创建一个金蝶 K/3 BOS 插件在安装、配置完 1.2 要求的环境后,我们就可以开始创建一个金蝶K/3 BOS插件了。2.1.1创建一个金蝶 K/3 BOS 客户端事件插件要创建一个金蝶 K/3 BOS 客户端事件插件,请按照以下步骤操作:1) 启动 Microsoft Visual Basic 6.0。 2) 在出现的“New Project”对话框中选择“ActiveX DLL”。3) 选择菜单“Project”“References”。4) 在出现的“References”对话框中,选择下述2项:l K3ClassEventsl Kingdee Foundation Objects 1.0如果没有在这个列表中没有找到上述2项,可以点击对话框上的“Browse”按键,在出现的打开文件对话框中分别选择本机上的l K3ClassEvents.dlll Kfo10.dll这2个DLL文件即可(一般在金蝶 K/3 客户端部件的安装目录中可以找到)。5) 重新命名工程及类模块名称,保存工程。例如将默认的新建工程名和类模块名改为下图所示。6) 在 BOSPlugIns.cls 类模块的代码中写入如下的代码。Option ExplicitPrivate WithEvents m_BillInterface As K3ClassEvents.BillEvent 必须具有的声明, 以此来获得单据事件这个 Public Sub 必须存在, 且必须如下格式, 请不要修改或删除Public Sub Show(ByVal oBillInterface As Object) 这里获得了K/3的单据对象. 共有 26 个事件, 11 个属性和 49 个方法可以使用 具体的事件、属性、方法,可以通过 VB IDE 的 “Object Browser”工具,选 择 “K3ClassEvents”下的“BillEvent”察看 Set m_BillInterface = oBillInterface End Sub这个 Private Sub 必须存在, 且必须如下格式, 请不要修改或删除Private Sub Class_Terminate() 释放K/3的单据对象 Set m_BillInterface = Nothing End SubCode 1: 客户端单据事件插件连接代码在上面的代码中,我们定义了一个名为 m_BillInterface 的 BillEvent 对象,来接受金蝶 K/3 BOS 的客户端单据事件。在 BOSPlugIns.cls 类模块的代码中写入如下的代码则可以接受金蝶 K/3 BOS的客户端序时薄事件。Option ExplicitPrivate WithEvents m_ListInterface As K3ClassEvents.ListEvents 必须具有的声明, 以此来获得序时薄事件这个 Public Sub 必须存在, 且必须如下格式, 请不要修改或删除Public Sub Show(ByVal oListInterface As Object) 这里获得了K/3的序时薄对象. 共有 8 个事件, 5 个属性和 15 个方法可以使用 具体的事件、属性、方法,可以通过 VB IDE 的 “Object Browser”工具,选 择 “K3ClassEvents”下的“ListEvents”察看 Set m_ListInterface = oListInterface End Sub这个 Private Sub 必须存在, 且必须如下格式, 请不要修改或删除Private Sub Class_Terminate() 释放K/3的序时薄对象 Set m_ListInterface = Nothing End SubCode 2: 客户端序时薄事件插件连接代码如果希望在一个插件中同时可以处理客户端单据事件和序时薄事件,可以通过在工程中添加1个类模块,如下图所示,分别在2个类模块中添加上述2段代码。这样就可以利用1个类来处理客户端单据事件,用另1个类来处理客户端序时薄事件了。7) 编译工程。8) 在金蝶 K/3 BOS中设置插件。如下图所示:上图所示的是步骤6中的同时可以处理单据事件和序时薄事件的插件的设置。以上步骤完成后,我们就建立了一个金蝶 K/3 BOS 客户端事件(包括单据事件和序时薄事件)插件。虽然我们在这个例子中没有进行任何额外的单据事件和序时薄事件操作,但经过设置后,实际上已经在使用了这个插件的单据、序时薄中调用了这个插件。我们现在需要做的,只是在这个插件中,利用获得的单据、序时薄对象,实现我们希望的具体操作了。2.1.2创建一个金蝶 K/3 BOS 中间层事件插件要创建一个金蝶 K/3 BOS 中间层事件插件,请按照以下步骤操作:1) 执行“2.1.1创建一个金蝶 K/3 BOS 客户端事件插件”中的步骤1至步骤5。唯一不同的是在步骤4中,只需要添加l Kingdee Foundation Objects 1.0的引用。 2) 在 BOSPlugIns.cls 类模块的代码中写入如下的代码。Option Explicit/*/*描述:单据保存后扩展处理方法/*备注:可以将该单触发器处理的过程在此函数中处理/*/Public Function BeforeSave(ByVal sDsn As String, _ ByVal dctClassType As KFO.Dictionary, _ ByVal vctClassTypeEntry As KFO.Vector, _ ByVal dctTableInfo As KFO.Dictionary, _ ByVal dctData As KFO.Dictionary, _ ByVal dctLink As KFO.Dictionary) Debug.Print 当前资料被保存前扩展处理方法 End Function/*/*描述:单据删除前扩展处理方法/*/Public Function BeforeDel(ByVal sDsn As String, _ ByVal nClassID As Long, _ ByVal dctClassType As KFO.Dictionary, _ ByVal nInterID As Long) Debug.Print 当前资料被删除前扩展处理方法 End Function/*/*描述:单据保存后扩展处理方法/*备注:可以将该单触发器处理的过程在此函数中处理/*/Public Function AfterSave(ByVal sDsn As String, _ ByVal dctClassType As KFO.Dictionary, _ ByVal vctClassTypeEntry As KFO.Vector, _ ByVal dctTableInfo As KFO.Dictionary, _ ByVal dctData As KFO.Dictionary, _ ByVal dctLink As KFO.Dictionary) Debug.Print 当前资料被保存后扩展处理方法 End Function/*/*描述:单据删除后扩展处理方法/*/Public Function AfterDel(ByVal sDsn As String, _ ByVal nClassID As Long, _ ByVal dctClassType As KFO.Dictionary, _ ByVal nInterID As Long) Debug.Print 当前资料被删除后扩展处理方法 End FunctionCode 3: 中间层事件插件连接代码在上面的代码中,我们可以看到,不同于金蝶 K/3 BOS 的客户端事件插件的处理,在金蝶 K/3 BOS中间层事件插件中,我们只需要实现这4个标准事件就可以了。关于这4个事件的参数含义,请参考“ 3.2中间层插件事件”。3) 编译工程。4) 在金蝶 K/3 BOS中设置插件。如下图所示:以上步骤完成后,我们就建立了一个金蝶 K/3 BOS 中间层事件插件。和“2.1.1创建一个金蝶 K/3 BOS 客户端事件插件”中的示例一样,我们在这个例子中没有进行任何额外的事件操作,我们现在需要做的,只是在这个插件中,利用这4个事件,实现我们希望的具体操作了。2.2自定义金蝶 K/3 BOS 标准菜单、工具栏请注意:因为金蝶 K/3 BOS中间层事件插件不处理界面事件,所以这一小节的内容,都是指金蝶 K/3 BOS客户端事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论