Sugarcrm:如何在QUICKCREATE视图中使用相关字段自动填充字段?

时间:2014-03-13 16:31:29

标签: standards sugarcrm autofill

我的配置: Sugar Entreprise 6.5.16

我想要实现的目标:

通过quickcreate视图创建联系人时(例如,通过单击"创建"在联系人子面板中),我想从所选的相关帐户中恢复任何地址信息。

IE:我在我的小品牌"我的联系人"在我的家里,我想编辑一个联系人。 Sugar打开弹出窗口,我更改了与联系人相关的帐户。我选择了,即微软。因此,现在选择此帐户后,我希望Sugar自动使用相关帐户的地址信息填写联系人的地址字段。

我测试的内容:

我看到了这个:

How to autopopulate a field in SugarCRM form

和johndope的博客文章(这是有帮助的) http://johndopenotes.wordpress.com/2013/03/18/sugarcrm-populating-fields-using-a-relate-field/

所以我创建了我的 SugarRoot / custom / Extension / modules / Contacts / Ext / Vardefs / sugarfield_account_name.php

并添加了这个:

$dictionary['Contacts']['fields']['account_name']['populate_list'] = array('id','name','Accounts');
$dictionary['Contacts']['fields']['account_name']['field_list'] = array('account_id','account_name','primary_address_street');

然后,我编辑了我的 SugarRoot / custom / modules / Contacts / metadata / quickcreatedefs.php 并补充说:

array (
        'name' => 'account_name',
        'displayParams' => 
        array (
          'key' => 'billing',
          'copy' => 'primary',
          'billingKey' => 'primary',
          'additionalFields' => 
          array (
            'phone_office' => 'phone_work',
          ),
        ),
      ),

经过快速重建和修复后,我对其进行了测试,但没有发生任何事情。 我不得不说我已经为editviewdefs.php做了完全相同的事情并且它有效......

所以,请帮助我! :)

1 个答案:

答案 0 :(得分:1)

来自https://community.sugarcrm.com/sugarcrm/topics/auto_fill_related_field_from_parent_module_to_child_module

的建议

公司示例。尝试根据您的需求调整此代码。

在custom / modules中// views / view.quickcreate.php 扩展ViewQuickCreate类以在preDisplay中设置相应的$ _REQUEST变量。 请记住,如果您在那里有合同,这也会被右侧的+使用,因此检查是否有父母,并且它是公司的第一个。

class ContractViewQuickcreate extends ViewQuickcreate
  function preDisplay(){
    parent::preDisplay();
    if (isset($_REQUEST['parent_id']) && $_REQUEST['parent_id'] != ''     && isset($_REQUEST['parent_type']) &&  $_REQUEST['parent_type'] == 'Companies'){
         $comp = new Company();
         $comp->retrieve($_REQUEST['parent_id']);
         //say the fields are company_id and company_name in Companies
         //and company_id_c and company_name_c in Contracts
         //assuming company is a relate field you'll need to map both
         $_REQUEST['company_id_c'] = $comp->company_id;
         $_REQUEST['company_name_c'] = $comp->company_name;
    }
  }
}