K3Wise如何添加一个新功能(二)--嵌入到k3主控台应用程序原创
金蝶云社区-Robby
Robby
7人赞赏了该文章 1,316次浏览 未经作者许可,禁止转载编辑于2022年12月06日 17:47:03
summary-icon摘要由AI智能服务提供

本文介绍了在K3Wise中添加并嵌入一个新功能的步骤。包括:添加功能链接至数据库,通过VB6开发ActiveX DLL,实现K3功能链接接口,编写并注册DLL组件,添加窗体并嵌入控件,将窗体嵌入主控台,并通过类调用窗体实现主控台融合。最后提示了使用form方式融合而非ocx控件的推荐做法。

K3Wise如何添加一个新功能(一)中已经介绍了如何再主控台添加一个功能

现在介绍如何点击这个功能打开一个嵌入到k3主控台里的。

参考内容:K3Wise如何添加一个新功能(一) https://vip.kingdee.com/link/s/MuV1V 

1.首先添加一个新功能链接:

insert into t_DataFlowDetailFunc(FDetailFuncID,FFuncName,FFuncName_CHT,FFuncName_EN,FSubFuncID,FIndex,FClassName,FClassParam,FIsNormal,FHelpCode,FVisible,FAcctType,FFuncType,FEnable)

values(60160103,'嵌入功能演示','嵌入功能演示','New app demo',601601,3,'UsrPrj.Application',60160103,0,51062,1,',1,2,3,4,5,6,7,9,10,11,12,13,16,17,14,15,',0,1)

update t_DataFlowTimeStamp

set FName = FName

GO

image.png

点击新功能提示:

image.png

2.打开VB6开发工具

image.png

选择ActiveX DLL,打开

image.pngimage.png

分别修改工程名和类名为:UsrPrj,Application(与上面的脚本的FClassName保持一致),修改完成后保存工程。

3.实现K3功能链接接口

为工程添加引用:Project->References;Browse...选择k3erp目录下的k3bbi.tlb文件;要开发vb二开项目,开发机上必须要安装对应版本的K3应用程序。

image.png

4.再Application类中添加继承接口代码implements IBizConsole,以及实现接口的代码:

image.png

60160103为脚本插入的FDetailFuncID

image.png

代码编写完毕,后编辑组件,并将组件放到k3erp目录下之后用Regsvr32注册组件;

image.png

regsvr32  "D:\Program Files (x86)\Kingdee\K3ERP\UsrPrj.dll"

5.重新打开K3查看效果;

image.png

6.再工程中添加一个[窗体]对象,添加完之后给窗体重命名为frmMain(取一个自己喜欢的名字)

image.png

并再窗体上添加一些控件(本例中添加了一个lable控件,caption设置为二开的一个窗体。)


image.png

修改Application代码,

image.png

编译、替换、注册后,重新打开k3查看效果

image.png

7.如何做到将框体嵌入到主控台里去(这样做的目的是让二开的功能看上去和K3是一个整体,看上去舒适一些。)?

类似于【生产任务单序时簿】,再主控台中有一个页签定位它。

image.png

8.在frmMain窗体中,添加控件Active Bar 3.0;Project->Components

image.png

点击应用;这一步是必须的,要想做嵌入窗体就必须添加一个Acitvebar,否则会引起无法关闭功能.(开发环境必须有控件的授权,否则是无法正常使用的,如下图,没有授权。)

image.png

获得正版许可之后,重新打开工程,编辑菜单(为了演示,做一个最简单的菜单)

image.png

9.再工程中添加类(类名改为填自己喜欢的),ILoadCtrlListener为K3BBI中的接口

image.png

10.修改Application类代码:

image.png

"UsrPrj"为当前工程名,"嵌入功能演示"为主控台标签想要显示内容,“UserPrj.CApp”为一个新入口类。

11.添加CApp类,用它来调frmMain;

image.png

12.修改frmMain代码,来响应主控台融合事件 

image.png

kdvbf.ParentWindow需要引用kdvbf.dll

image.png

abSubMenu,是frmMain窗体activexbar控件的ID

image.png



编译、替换、注册

查看效果:

image.png


(完)


不推荐使用主控台融合ocx的方式来开发功能,ocx容易因为运行时控件授权码异常无法正常打开功能,使用form的方式去融合就不存在此类问题,可以放心使用。


附件为本文完整项目代码。

UsrPrj.rar(16.10KB)

赞 7