Javascript 基于statcode字段值的MSCRM 2011隐藏选项卡

Javascript 基于statcode字段值的MSCRM 2011隐藏选项卡,javascript,dynamics-crm,show-hide,state,Javascript,Dynamics Crm,Show Hide,State,我想根据Quote实体的statecode字段的值隐藏Quote实体中的选项卡 塞纳里奥: 如果值等于3,则选项卡应可见,否则选项卡应不可见。 你可以在下面找到我的代码,但它不起作用 请帮忙,谢谢 function hideTab(){ var field = Xrm.Page.data.entity.attributes.get("statecode"); if (field == null || field.getValue() == null) return; var

我想根据Quote实体的statecode字段的值隐藏Quote实体中的选项卡

塞纳里奥: 如果值等于3,则选项卡应可见,否则选项卡应不可见。 你可以在下面找到我的代码,但它不起作用

请帮忙,谢谢

   function hideTab(){
var field = Xrm.Page.data.entity.attributes.get("statecode");    
if (field == null || field.getValue() == null)
    return;
var value = field.getValue();
if(value != "3")
    return;

Xrm.Page.ui.tabs.get(tab_9).setVisible(false);
}

您可以使用以下任一选项隐藏选项卡:

window.parent.Xrm.Page.ui.tabs.get(tabindex).setVisible(false);
or
window.parent.Xrm.Page.ui.tabs.get("tabname").setVisible(false);
如果这不起作用,则首先检查window.parent.Xrm.Page.getAttribute提供的日志字段或更好的日志字段

请参见此处的简要示例:

如果您确定satecode的格式正确,则使用此选项获取satecode:


为了使用JavaScript读取字段值,字段必须位于crmForm的主体中,即不在页眉或页脚区域

此外,我会像这样重构您的代码

function hideTab (){
    var field;
    var fieldValue;
    var isHidden = false;

    field = Xrm.Page.data.entity.attributes.get("statecode");    
    if (field != null && field.getValue() != null){
        fieldValue = field.getValue();
        alert(fieldValue);
        if(value != "3")
            isHidden = true;
    }

    alert(isHidden);
    Xrm.Page.ui.tabs.get('tab_9').setVisible(isHidden);
}
请注意,我添加了几个警报,以便您可以进行检查

该函数正在运行 该字段已找到 字段值是正确的
获取'tab_9'。setVisiblefalse;请注意引号。这对你有用吗?我试过了,但jasonscript不起作用。警报显示为False,它会隐藏每种情况下的选项卡。我认为获取statecode的值有问题,我在另一个答案中发现了这一点:Xrm.Page.getAttributenew_fieldSchemaName.getValue;现在它表示无法获取未定义或空引用的属性“getValue”。@Eldanar为了使用getValue方法,必须将字段添加到表单中。您确定表单上有statecode吗?否则,您需要执行webservice调用以获取值statecode字段必须在正文中,而不仅仅是在页眉或页脚中。当我使用Xrm.Page.getAttributethanks时,它表示无法获取未定义或空引用的属性“getValue”,但我隐藏该选项卡没有任何问题,问题是读取statecode字段并根据其值隐藏选项卡。@Eldanar请尝试以下操作:window.parent.Xrm.Page.data.entity.attributes.getstatecode;我想我必须做一个Web服务来获取statecode的数据。
function hideTab (){
    var field;
    var fieldValue;
    var isHidden = false;

    field = Xrm.Page.data.entity.attributes.get("statecode");    
    if (field != null && field.getValue() != null){
        fieldValue = field.getValue();
        alert(fieldValue);
        if(value != "3")
            isHidden = true;
    }

    alert(isHidden);
    Xrm.Page.ui.tabs.get('tab_9').setVisible(isHidden);
}