选择关联字段_套件crm时填充字段

时间:2016-12-09 14:49:09

标签: sugarcrm suitecrm

我使用套件crm 7.7.5

当我创建机会并从关联字段中选择一个帐户时,我想要一个字段(国家/地区)自动填充所选帐户所在国家/地区的值。

为此,我试图添加代码

    $dictionary['Opportunity']['fields']['country_c']['populate_list']= array('id','name','country_c');
$dictionary['Opportunity']['fields']['country_c']['field_list'] = array('account_id_c','account_name','country_c');

文件\ custom \ Extension \ modules \ Opportunities \ Ext \ Vardefs \ sugarfield_country_c.php

知道country_c是表格帐户中列国家/地区的名称,第二个country_c是布局机会中字段国家/地区的ID

但这不起作用,有人可以帮我弄清楚原因吗?

PS:我已尝试按照本教程https://developer.sugarcrm.com/2011/08/31/howto-using-a-relate-field-to-populate-a-custom-field/

3 个答案:

答案 0 :(得分:1)

这是@Bozic解决方案的扩展名。

如果有人试图根据选择自动填充相关字段,那么这里就是解决方案。 (面临“字段不匹配:帐户名”的人)

方案:我在“帐户”模块中有“帐户所有者”(与“用户”模块有关)字段。在“案例”模块中,我将根据“帐户选择”来提取“帐户所有者”字段。

在/custom/modules/Cases/metadata/editviewdefs.php

 <hibernate-configuration>
   <session-factory>
     ...
     <property name="cache.use_second_level_cache">true</property>
     <property name="cache.use_query_cache">true</property>
     <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

注意:

  • assigned_user_name是“帐户”模块中“帐户所有者”的字段ID
  • assigned_user_id是帐户所有者的ID字段
  • 案例模块中案例帐户所有者的
  • account_owner_case_cis字段
  • account_name是案例模块中的选择字段(选择此字段后,将填充帐户所有者)

答案 1 :(得分:0)

您应该转到custom / modules / {YOUR MODULE} /metadata/editviewdefs.php并编辑editviewdefs.php文件。
首先,您需要找到定义了关联字段(account_name)的数组。它看起来与此类似,可能还有一些参数。

array (
    'name' => 'account_name',
),

现在您需要将关联字段(country_c)中的数据映射到新字段(比如populated_country_c)。编辑完阵列后,看起来就像这样。

array (
    'name' => 'account_name',
    'displayParams' => array (
        'field_to_name_array' => array(
            'id'=>'account_id_c',
            'name'=>'account_name',
            'country_c' => 'populated_country_c',
            ),
        ),
    ),

现在populated_country_c是新字段,当您在关联字段中选择帐户时,将填充有关国家/地区的数据。所以我们还需要创建这个新领域。您可以通过工作室或手动添加新数组。最后,您的文件将如下所示

array (
        'name' => 'account_name',
        'displayParams' => array (
            'field_to_name_array' => array(
                'id'=>'account_id_c',
                'name'=>'account_name',
                'country_c' => 'populated_country_c',
                ),
            ),
        ),
array (
        'name' => 'populated_country_c',
        'label'=> 'LBL_POPULATED_COUNTRY'
        ),

现在,当从相关字段中选择新帐户时,populated_country_c将使用所选帐户中的country_c字段填充。

答案 2 :(得分:0)

使用字段 billing_account_country 而不是 country_c ,并将 account_id account_name 一起使用。我相信,名称和身份证必须与同一张桌子重合。