关于选客户后自动携带默认客户联系人的小结
2人赞赏了该文章
4,439次浏览
编辑于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加上客户信息进行过滤。
推荐阅读