SuiteCRM下的Relate Field自动填充问题

在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',

                .......

              ),

            ),

),

你可能感兴趣的:(SuiteCRM下的Relate Field自动填充问题)