电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开DEMO:如何将替代关系引入到另外一个账套?

来源:金蝶云社区作者:金蝶2024-09-163

二开DEMO:如何将替代关系引入到另外一个账套?

参考文档:K3Wise如何添加一个新功能(二)--嵌入到k3主控台应用程序 https://wenku.my7c.com/link/s/M97oC

对参考文档中的工程改造,为他添加一个引入的功能;

一些必要的准备工作:

1.由于该功能是嵌入到k3主控台里,没有k3主控台代码调试就会很麻烦。因此再开发阶段先修改工程类型为standard exe,startup object为Sub Main;

image.webp

然后再工程中添加一个Module,并添加代码

Public Sub Main()

    Dim frm As New frmMain

    If MMTS.CheckMts(1) Then

        frm.Show

    End If

End Sub

模拟一次登陆,这样需要的连接串会到缓存池中;(工程涉及的代码会放在附件中)

2.再MMTSmodule的函数CheckMts中需要将SUBID设置为super,避免登陆失败。

现在看需求:将当前账套A里的替代关系引入到另外一个账套B?(场景为B是一个新账套,基础资料、bom、都已经导入过来了,但是K3没有提供替代关系引入功能

设计思路:2个账套均是K3账套,物理表结构完全一致,只有物料、bom、制单人、等需要F7的字段需要做内码转化

比如物料1.01再A账套中内码是1000,再B账套中内码是1001,因此传递给B账套数据时,这个记录就应该传1001.

物料替代关系属于BOS单据(FID>0就是bos单)有两种方案:

1是直接sqlserver脚本转内码插入再一个查询分析器里用账套名.dbo.物理表的方式来处理数据(这种方法本文不介绍)

image.webp

2.通过k3提供的标准组件来处理。

image.webp

利用bos自带的功能的好处就是他能够触发保存后的中间层事件。并且他的扩展性比较强,用此方法可以完成其他类型的bos单迁移。

BOS单据保存的核心代码如下:

Set oSrv = CreateObject("K3MClass.BillUpdate")

i = oSrv.Save(sDsn, oDataSrv.ClassType, oDataSrv.ClassTypeEntry, oTableInfo, oBillData, dctLinks)

sDsn 账套连接串

ClassType 单据类型对象

ClassTypeEntry 单据类型明细对象

oTableInfo 单据字段描述

oBillData 具体某张单据的明细数据

dctLinks 选单数据(物料替代关系无选单关系,直接传递null即可)

如何构建oBillData?

假如有个单据SubsItem000030(演示账套),内码是1007

image.webp

再本账套中构建数据包的方法

Set oDataSrv = CreateO

二开DEMO:如何将替代关系引入到另外一个账套?

参考文档:K3Wise如何添加一个新功能(二)--嵌入到k3主控台应用程序 https://wenku.my7c.com/link/s/M97oC 对参考文档中的工程改造,为他添...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信