关于选客户后自动携带默认客户联系人的小结
金蝶云社区-云社区用户Pz4u1234
云社区用户Pz4u1234
2人赞赏了该文章 4,393次浏览 未经作者许可,禁止转载编辑于2014年12月10日 22:21:31

最近看论坛上有一些二开关于客户联系人的需求,即:选定客户之后,自动带出该客户默认的联系人。

为了实现这个需求,我们先介绍一下,客户及其联系人的结构吧。
【客户】的唯一标识:BD_Customer。它的主表是T_BD_CUSTOMER。
【客户】中的【联系人】页签是一个单据体,所属表为T_BD_CUSTCONTACT。在联系人页签中点击【新增】按钮会弹出一个联系人新增的框,这时弹出的是一个联系人的基础资料,这个基础资料的唯一标识是:BD_CommonContact。在BOS IDE中查找一下,你会发现有一堆的基础资料联系人,那么到底是哪个呢?对比一下你会发现,原来是【采购管理】—【基础资料】—【联系人】。基础资料联系人对应的主表为T_BD_COMMONCONTACT。

从表面上看,T_BD_CUSTCONTACT表和T_BD_COMMONCONTACT表中的联系人信息应该是一样的,但是为啥要分离成两套呢?仔细研究你会发现,在客户中的联系人,其大部分信息取自于基础资料联系人,但是有一些信息,比如:是否默认联系人,这个属性是自己独有的。而且基础资料联系人中有一些信息也没有携带到客户联系人中,比如:性别、类型等。

下面来回答问题。这里可以这样实现:
首先拉一个基础资料类型的字段,命名为【客户联系人】,并绑定到【采购管理】—【基础资料】—【联系人】下的联系人,记得要绑对。然后,在插件中的DataChanged事件里写关于【客户】的更新事件,根据客户的信息取得该客户的默认联系人的内码,然后赋值给客户联系人字段,这样就能在客户更新时携带出客户的默认联系人信息。
这里还有一个【客户联系人】F8按照客户过滤的问题,这里只需要在插件的BeforeF7Select事件里写关于【客户联系人】的F8处理,也就是给属性e.ListFilterParameter.Filter加上客户信息进行过滤。

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0