2016-03-28 12 views
2

CRM geliştirmede oldukça yeniyim ve hesap formumu onChange'daki herhangi bir metin alanını Büyük Harfle'ye uyarlamaya çalışıyorum. Şu anda çevrimiçi bulundu bu işlev ile çalışıyorum:MS CRM 2015'teki OnChange alanındaki alan metni değerlerinden nasıl yararlanabilirim?

function UpperCaseField(fieldName) 
{ 
var value = Xrm.Page.getAttribute(fieldName).getValue(); 
if (value != null) 
{ 
    Xrm.page,getAttribute(fieldName).setValue(value.toUpperCase()); 
} 
} 

Ancak, yöntem getValue() desteklenmez o söyler benim test hesabında bir değeri değiştirdiğinizde. Bulduğum her şey getValue() işlevini kullanmamı söyledi. Kaybettim.

Herhangi bir yardım için teşekkür ederiz. Teşekkür

cevap

0

Ayrıca bu işleyicisi kayıt/nasıl kullandıklarını gösteren bir ekran görüntüsü sağlayın

Xrm.Page.getAttribute(fieldName).setValue(value.toUpperCase()); 

hattı

doğrultusunda

Xrm.page,getAttribute(fieldName).setValue(value.toUpperCase()); 

değiştirin.

1

Bir getValue destekleniyorsa, hata desteklenmiyorsa, fieldName değerinin aslında formdaki bir alan olduğunu doğrulayın. Böyle, savunmaya kodlamak için en iyisi:

function UpperCaseField(fieldName) 
{ 
    var attr = Xrm.Page.getAttribute(fieldName); 
    if (!attr) { 
     console.log(fieldName + " not found"); 
     return; 
    } 

    var value = attr.getValue(); 
    if (value != null) 
    { 
     attr.setValue(value.toUpperCase()); 
    } 
} 

Güncelleme: Form düzenleyicisi üzerinden JS işlevlerine alanlarınızı bağladığınızda, CRM ilk parametre olarak bir olay bağlamı geçer. Merhaba https://msdn.microsoft.com/en-us/library/gg328130.aspx

+0

ve Cevabınız için teşekkür ederim:

function UpperCaseField(context) { var fieldName == context.getEventSource().getName(); var attr = Xrm.Page.getAttribute(fieldName); if (!attr) { console.log(fieldName + " not found"); return; } var value = attr.getValue(); if (value != null) { attr.setValue(value.toUpperCase()); } } 

İşte Bağlam hakkında daha fazla bilgi verilmiştir: İşte kod bu durumda nasıl görüneceği bu. "fieldName değerinin aslında formdaki bir alan olduğunu doğrulayın" Bununla ne demek istiyorsunuz? Kodun nasıl çalıştığını yanlış anlamış olabilirim, fakat çalıştığım alanın adını işlev için parametre olarak yerleştirmek zorunda mıyım? Fonksiyonu, kaydedilen alanın alan adını otomatik olarak alan adına kaydettirdiğini farz edelim. Her iki durumda da yukarıdaki kod bana aynı hatayı verdi. –

+0

Rica ederim. Cevabımı güncelledi. – Polshgiant