K3wise老单二次开发方法

上传人:工**** 文档编号:494660346 上传时间:2022-11-14 格式:DOCX 页数:15 大小:436.37KB
返回 下载 相关 举报
K3wise老单二次开发方法_第1页
第1页 / 共15页
K3wise老单二次开发方法_第2页
第2页 / 共15页
K3wise老单二次开发方法_第3页
第3页 / 共15页
K3wise老单二次开发方法_第4页
第4页 / 共15页
K3wise老单二次开发方法_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《K3wise老单二次开发方法》由会员分享,可在线阅读,更多相关《K3wise老单二次开发方法(15页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上 919 7 发表于 2016-12-20 10:57:17 复制链接 操作成功!开发环境:K/3 Wise 13.0、K/3 Bos开发平台、Visual Basic 6.0 目录一、二次开发插件编程二、代码演示三、配置插件四、测试插件五、插件事件附录一、二次开发插件编程打开Visual Basic 6.0,新建工程ActiveX DLL:命名为FirstPlugin.class: 引用类库如下: 已安装K/3 Wise,在VB 6.0菜单栏上会多出一个金蝶开发插件: 打开金蝶开发向导,创建工业单据客户端插件(工业单据俗称“老单”): 点击“确定”,选择类“Firs

2、tPlugin”: 点击“下一步”,这里我们自定义一个菜单项“插件工具”: 点击“下一步”,选择事件“UserMenuClick”: 完成向导。二、代码演示代码编写如下:配置路径:供应链-外购入库单函数功能:插件工具-根据“长、宽、厚”自动计算批号定义插件对象接口. 必须具有的声明, 以此来获得事件Private WithEvents m_BillTransfer As K3BillTransfer.BillDim F55 As Long, F55Text As String长Dim F56 As Long, F56Text As String宽Dim F57 As Long, F57Text

3、 As String高Dim FDate As Long, FDateText As String日期Dim FBatchNo As String批号Dim FItemID As Long, FNumber As String物料编码Dim FBatchManager As Boolean是否采用业务批号管理Dim str As StringPublic Sub Show(ByVal oBillTransfer As Object) 接口实现 注意: 此方法必须存在, 请勿修改 Set m_BillTransfer = oBillTransfer End SubPrivate Sub Clas

4、s_Terminate() 释放接口对象 注意: 此方法必须存在, 请勿修改 Set m_BillTransfer = NothingEnd SubPrivate Sub m_BillTransfer_BillInitialize() * 开始设置菜单 * m_BillTransfer.AddUserMenuItem 自动批号, 插件工具 * 结束设置菜单 * TODO: 请在此处添加代码响应事件 BillInitialize F55 = GetCtlIndexByFld(FEntrySelfA0155, True) F56 = GetCtlIndexByFld(FEntrySelfA0156

5、, True) F57 = GetCtlIndexByFld(FEntrySelfA0157, True) FBatchNo = GetCtlIndexByFld(FBatchNo, True) FDate = GetCtlIndexByFld(FDate, False) FItemID = GetCtlIndexByFld(FItemID, True)End SubPrivate Sub m_BillTransfer_UserMenuClick(ByVal Index As Long, ByVal Caption As String) TODO: 请在此处添加代码响应事件 UserMenuC

6、lick Select Case Caption Case 自动批号 此处添加处理 批号生成 菜单对象的 Click 事件 With m_BillTransfer For i = 1 To 1000 If .GetGridText(i, FItemID) = Then Exit For End If 从物料表检测 是否采用业务批次管理 Dim strSQL As String 用于执行SQL Dim rs As ADODB.Recordset FNumber = FNumber = .GetGridText(i, FItemID) strSQL = strSQL = SELECT FBatch

7、Manager FROM t_ICItem WHERE FNumber= & FNumber & Set rs = SQLHelper.ExecuteSQL(strSQL, ) If rs.EOF = False Then FBatchManager = rs.Fields(FBatchManager) End If Set rs = Nothing F55Text = .GetGridText(i, F55) F56Text = .GetGridText(i, F56) F57Text = .GetGridText(i, F57) If F55Text = Then F55Text = 0

8、If F56Text = Then F56Text = 0 If F57Text = Then F57Text = 0 FDateText = Replace(.GetHeadText(FDate), -, ) If (FBatchManager = True) Then .SetGridText i, FBatchNo, F55Text & - & F56Text & - & F57Text & - & FDateText End If Next End With Case Else End SelectEnd Sub*获取分录行数*Public Function GetEntryMax()

9、 As LongDim k As LongDim iFItemID As LongDim oEntryCtl As VariantDim maxrow As Long 最大行For k = LBound(m_BillTransfer.EntryCtl) To UBound(m_BillTransfer.EntryCtl) If UCase(m_BillTransfer.EntryCtl(k).FieldName) = UCase(FItemID) Then 物料代码所在列 iFItemID = k Exit For End IfNext koEntryCtl = m_BillTransfer.

10、EntryCtlmaxrow = UBound(oEntryCtl(iFItemID).DInterID) 获取表体最大行GetEntryMax = maxrowEnd Function*返回单据字段顺序(isEntry True是表体)*Public Function GetCtlIndexByFld(ByVal fldName As String, Optional ByVal isEntry As Boolean = False) As LongDim ctlIdx As LongDim i As IntegerDim isFind As BooleanDim vValue As Var

11、iantfldName = UCase(fldName)isFind = FalseWith m_BillTransferIf isEntry Then For i = LBound(.EntryCtl) To UBound(.EntryCtl) If UCase(.EntryCtl(i).FieldName) = fldName Then ctlIdx = .EntryCtl(i).FCtlOrder isFind = True Exit For End If Next iElse For i = LBound(.HeadCtl) To UBound(.HeadCtl) If UCase(.

12、HeadCtl(i).FieldName) = fldName Then ctlIdx = .HeadCtl(i).FCtlIndex isFind = True Exit For End If Next iEnd IfEnd WithIf isFind = True ThenGetCtlIndexByFld = ctlIdxElseGetCtlIndexByFld = 0End IfEnd Functionurl= /url三、配置插件在Visual Basic 6.0生成DLL: 启动K/3 Wise BOS开发平台,打开外购入库单,并进行插件配置: 点击“插件配置管理”,配置客户端插件: 点击“浏览”,找到插件并勾选: 点击“确定”,并保存外购入库单。四、测试插件启动K/3 Wise,打开“供应链-仓存管理-外购入库单-新增”: 至此,插件开发和配置完成!五、插件配置后未生效 1.在插件配置管理提示“没有找到文件,或文件没有正确注册” 解决方法:插件dll名称命名要和工程名称一致。 比如工程名称“aaaa”,其中有一个类“bbb”,dll命名为“aaa”, 配置插件后,显示完整名称“aaa.bbb”,提示aaaa“没有找到文件,或文件没有正确注册”。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号