0

我正在尝试在 VTiger 6 中实现联系人和服务合同之间的 1:m 关系。我们将使用这种关系来跟踪我们系统的用户。每个联系人一次只能链接到 1 个服务合同 (1:m)。

通过使用以下代码,我能够获得此工作的 ServiceContract 方面:

require_once 'vtlib/Vtiger/Module.php';
$scmodule=Vtiger_Module::getInstance('ServiceContracts');
$scmodule->setRelatedList(Vtiger_Module::getInstance('Contacts'), 'Users',Array('SELECT'),'get_related_list');

这在服务合同的右侧添加了一个标题为“用户”的选项卡,带有一个选择按钮,允许我们从列表中添加/删除联系人。

但是,我们还希望在“联系人”页面上有一个字段,显示他们链接到的服务合同。

更新:我使用以下代码将单个服务合同字段添加到联系人:

`

include_once('vtlib/Vtiger/Module.php');
$module = Vtiger_Module::getInstance('Contacts');
$blockInstance = Vtiger_Block::getInstance('LBL_CONTACT_INFORMATION', $module);
$fieldInstance = new Vtiger_Field();
$fieldInstance->name = 'SelectYourAccount';
$fieldInstance->label = 'Account';
$fieldInstance->uitype = 10;
$fieldInstance->typeofdata = 'V~O';
$blockInstance->addField($fieldInstance);
$fieldInstance->setRelatedModules(Array('ServiceContracts'));`

上面的代码运行良好,我在联系方式中有一个 Account 字段,我可以链接到单个服务合同;但是,当我为联系人选择服务合同,然后转到服务合同上的用户列表时,未列出该联系人。

任何帮助将不胜感激!

4

1 回答 1

1

我从您的问题中了解到,联系人是您的“1”模块,而服务合同是“M(多记录)”模块。这意味着 1 个联系人将有多个服务合同。因此,在联系模块下已经给出了 vtiger 服务合同相关列表。请检查下面的这张图片。

联系模块下的服务合同

接下来在服务合同中,您将可以选择联系人,以便合同将与“1”联系人一起使用。请参阅此处的屏幕截图。

在此处输入图像描述

我希望您在阅读 Vtiger 中的 Relation 后能够清楚地了解。

于 2017-04-29T13:21:31.147 回答