我需要根据自定义模块的编辑视图中下拉字段的选定值显示/隐藏某些字段。 SugarCRM CE版本是6.1.4。
我正在尝试:
$dictionary['<module name>']['fields']['<hidden field>']['dependency'] = 'equal($<trigger field>, "<trigger field value>")';
但它对我不起作用。欢迎提出任何建议。
提前致谢
答案 0 :(得分:1)
我用javascript代码解决了它。 在modules / module /metadata/editviewdefs.php
中 'templateMeta' =>
array (
....
'includes'=>
array(
array('file'=>'modules/<module>/ShowHidePanel.js'),
),
'javascript' => '<script type="text/javascript" language="Javascript">showHidePanel();</script>',
...
array (
'name' => 'geometria',
'studio' => 'visible',
'label' => 'LBL_GEOMETRIA',
'displayParams' =>
array (
'javascript' => 'onchange=showHidePanel();',
),
),
并创建了文件模块/ 模块 /ShowHidePanel.js
function showHidePanel() {
if(document.getElementById('geometria').value == 'pletina') {
document.getElementById('LBL_EDITVIEW_PANEL1').style.display = 'initial';
document.getElementById('LBL_EDITVIEW_PANEL2').style.display = 'none';
document.getElementById('LBL_EDITVIEW_PANEL3').style.display = 'none';
document.getElementById('LBL_EDITVIEW_PANEL4').style.display = 'none';
document.getElementById('LBL_EDITVIEW_PANEL5').style.display = 'none';
}else if(document.getElementById('geometria').value == 'redondo') {
document.getElementById('LBL_EDITVIEW_PANEL1').style.display = 'none';
document.getElementById('LBL_EDITVIEW_PANEL2').style.display = 'initial';
document.getElementById('LBL_EDITVIEW_PANEL3').style.display = 'none';
document.getElementById('LBL_EDITVIEW_PANEL4').style.display = 'none';
document.getElementById('LBL_EDITVIEW_PANEL5').style.display = 'none';
}
}
答案 1 :(得分:0)
我不太确定CE版本支持使用SugarLogic - 只有Pro&amp;据我所知,企业做了。 除此之外,您的原始代码看起来很好!
对于将来的参考,以下是如何正确使用依赖项的示例: http://support.sugarcrm.com/02_Documentation/04_Sugar_Developer/Sugar_Developer_Guide_6.7/03_Module_Framework/Sugar_Logic/02_Using_Sugar_Logic_Directly/Creating_a_custom_dependency_using_metadata/