参考文档https://vip.kingdee.com/link/s/lH2bu
先给K3添加一个住控台链接
适用版本Wise15.0. Wise15.1
创建一个vb工程userdllloader.
创建一个类Application,名称与插入的脚本中的fclassname匹配;
引用kingdee k3base bridge interface 1.0组件;并再类中写下如上图代码;
subid请返回super,2开自己开发的功能不需要检查站点数;
callfunc中:
ffuncid是插入脚本中的fdetailfuncid;
K3ApsCshapProxy.proxyFactory对象是k3已存在的加载c#工程的代理;使用的是.net framework 2.0,因此要用k3已存在的代理对象,2开的工程必须是net framework 2.0开发的;否则无法加载;
Set dotNetDllProxy = CreateObject("K3ApsCshapProxy.ProxyFactory")
If dotNetDllProxy Is Nothing Then
Exit Sub
End If
dotNetDllProxy.AsmDllName = App.Path & "\UserCSharpPro.dll" '组件所在的物理地址,把c#编译的组件放到k3erp目录下
dotNetDllProxy.AsmClassName = "UserCSharpPro.Class1" ‘工程名.类名’
dotNetDllProxy.LoadClass
dotNetDllProxy.CallMothed "Show", Nothing
'Show为class1中的一个public方法,show没有传参时,callmothed的第2个参数填nothing
建立一个C#工程UserCshapPro.dll;创建一个类Class1;(和与vb代码中的匹配)
工程引用k3erp目录下的2个组件:
kingdee.k3.aps.consolebse.dll,kingdee.k3.aps.dataaccess.dll;
class1必须继承iwiseconsole接口,sysnumber返回super;
如何和k3数据交互:
比如我在form1窗体的按钮下查询当前账套物料数量
accessfromcom是kingdee.k3.aps.dataaccess.dll类,用来和数据库交互;
可以用它的updateexecute方法执行更新、插入脚本;
完。
推荐阅读