在SuiteCRM的模块中新建了一个关联类型列时, 选取关联类型列的记录时, 默认是该记录的默认name列
例如在A模块下有一个r关联列(关联到B模块的记录),在A中选取r的时候,默认是返回B模块记录下的name列
如果你的name列设置为非必填而且都是空值的情况下,那么A列中的r值也会是空的
解决方法是修改在vardefs.php中修改r里的rname的值,赋予B模块下你想显示的数据列名
修改步骤如下:
1)在modules/[the module name]/vardefs.php或custom/Extension/modules/[the module name]/Ext/Vardefs下新建php文件
*是否在custom文件夹下新建取决于你的数据列是否后期在工作室里新建
*请勿在custom/module/[the module name]/Ext/Vardefs和custom/Extension/modules/[the module name]/Ext/Vardefs中修改现有文件,否则修改完会被覆盖
2)新加上该语句:
$dictionary['A MODULE']['fields']['R']['rname']='THE COL OF B MODULE';
R代表该关联数据列的列名
The Col of B Module为模块B里你想显示出来的数据列名
3)在系统中点击修复即可正常使用
2021-02-02修改:
如果想将B模块下的列信息用于A模块,可以在custom/modules/[A module name]/metadata/editviewdefs.php下,找到R列数据,添加displayParams数组,如下:
array (
'name' => 'R',
'displayParams' => array(
'field_to_name_array' => array(
'id' => 'cont_contractproducts_id_c',
'B field 1' => 'A field 1',
'B field 2' => 'A field 2',
'B field 3' => 'A field 3',
.......
),
),
),
网友评论