2014-09-30 3 views
0

Я хочу скрыть вкладку в котировочном объекте на основе значения поля statecode объекта кавычки.MSCRM 2011 Скрытие вкладок на основе значения поля statcode

Senario: Если значение равно «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); 
} 
+0

'Xrm.Page.ui.tabs.get ('tab_9'). SetVisible (false);' Обратите внимание на кавычки. Это работает для вас? – jasonscript

+0

Я пробовал, но не работает jasonscript. – Eldanar

ответ

0

Для того, чтобы прочитать значение поля с помощью JavaScript, то поле должно быть в body 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); 
} 

Обратите внимание, я добавил пару alerts, так что вы можете проверить, что

  1. функция работает
  2. поле найдено
  3. значение поля
+0

Alert говорит «False», и он скрывает вкладку в каждой ситуации. Я думаю, что что-то не так с получением значения «statecode». – Eldanar

+0

Я нашел это в другом ответе: 'Xrm.Page.getAttribute (" new_fieldSchemaName "). GetValue();' – jasonscript

+0

@Eldanar: http://msdn.microsoft.com/en-us/library/gg334409.aspx#BKMK_getValue – jasonscript

0

вы можете скрыть вкладку с помощью любого из них:

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() дает или лучше войти field.

посмотреть краткий пример здесь: https://mahenderpal.wordpress.com/tag/ms-crm-2011/

, если вы уверены, что satecode в форме затем использовать это, чтобы получить satecode:

window.parent.Xrm.Page.data.entity.attributes.get("statecode"); 
+0

Он говорит: «Невозможно получить свойство getValue неопределенной или нулевой ссылки, когда я использовал' Xrm.Page.getAttribute() ' – Eldanar

+0

@ Eldanar. Теперь я отредактировал ответ. –

+0

спасибо, но у меня нет проблем с укрытием вкладки, проблема заключается в чтении поля statecode и скрыть вкладку в зависимости от ее значения. – Eldanar

Смежные вопросы