SugarCRM对自定义字段的限制

时间:2012-10-23 01:49:48

标签: sugarcrm

我是SugarCRM模块开发的新手,但我对PHP,ajax和数据库编程非常了解。

这是我的任务:我被要求从客户端模块创建对自定义字段的限制。 有一个称为标识号的自定义字段,我需要做的是避免基于该字段将新客户端保存到数据库中,换句话说,客户端必须是唯一的。它必须显示一个弹出窗口,说“客户端已存在”

2 个答案:

答案 0 :(得分:4)

editviewdefs.php帐户复制到custom文件夹,并将id_number的自定义字段定义更改为此

array(
  'name' => 'id_number',
  'displayParams' => 
  array (
    'field' =>   
    array (  
      'onChange' => 'check_is_duplicate(this);',  
    ), 
  ),
),

创建一个javascript函数check_is_duplicate

function check_is_duplicate(obj) {
  // Call a script via Ajax. Pass values for id and id_number with the request.
  if (o.responseText > 0) {
    alert('duplicate');
    document.getElementById('SAVE').disabled = true;
  } else {
    document.getElementById('SAVE').disabled = false;
  }
}

您必须创建将通过ajax请求调用的脚本 在该脚本中,您必须运行类似 -

的查询
SELECT COUNT(*) AS count FROM accounts 
WHERE deleted = 0 AND id != {$record} AND id_number = {$id_number}

执行查询并返回计数。

然后使用beforeSave逻辑挂钩从服务器端保存检查重复项。

答案 1 :(得分:2)

您可以通过以下代码创建自定义重复检查:

$dictionary['Account']['duplicate_check']['FilterDuplicateCheck']['filter_template'] = array(
    array(
        '$and' => array(
            array('identification_number' => array('$equals' => '$identification_number')),

        ),
    ),
);

在文件中添加以下代码:/custom/Extension/modules/Accounts/Ext/Vardefs/duplicate_check.php。 然后,执行快速修复/重建。

工作原理: 当您输入标识号并按保存时,SugarCRM将执行重复检查。如果找到重复项,SugarCRM将列出重复项,您可以选择使用副本或忽略。