sugarcrm 根据用户详细信息中的值在 editview 中显示字段

sugarcrm display field in editview based on value in user details

我正在尝试根据 userdetails 中的 fieldvale 单独在 editview 中显示一个字段。

例如:对于用户 can_add_no 将在用户详细信息中,如果选中,则该特定用户可以在 quote 模块中添加 quote_extra_no

我尝试了以下方法。为该字段的报价模块添加了依赖项。

$dictionary['Quote']['fields']['quote_extra_no'] = array (
    'audited'                   => true,
    'calculated'                => false,
    'duplicate_merge'           => 'disabled',
    'duplicate_merge_dom_value' => '0',
    'importable'                => 'true',
    'len'                       => '255',
    'massupdate'                => false,
    'merge_filter'              => 'disabled',
    'name'                      => 'quote_extra_no',
    'no_default'                => true,
    'reportable'                => true,
    'required'                  => false,
    'size'                      => '50',
    'source'                    => 'custom_fields',
    'studio'                    => 'visible',
    'type'                      => 'varchar',
    'unified_search'            => false,
    'vname'                     => 'LBL_EXTRA_REF',
    'dependency'                => 'equal(related($assigned_user_link,"can_add_no"),"1")',
);

还在Editview中添加了字段。但它不起作用。如果设置了当前用户 can_add_no 或勾选了复选框。他可以在引用的编辑视图中编辑 quote_extra_no

我怎样才能实现功能,因为依赖项没有帮助我做到这一点。

有两种方法可以做到这两种方式,你应该在两个模块之间建立关系。

  1. 通过使用依赖关系:

    等于(相关($related_field_name,"can_add_no"),"1")'

  2. IN record.js 在该方法中编写一个方法,为 canadd_no 调用 api 并根据该显示隐藏该字段。

API 调用示例:

  app.api.call('read', app.api.buildURL(this.model.get('_module'), 'read', {id: this.model.get('id')}), null,
                {
                    success: function(data) {
                          your costume code to hide
                        }
                    },
                });

More Info related to API