4

通貨フィールドから値を取得し、別のエンティティの別の通貨フィールドの値として設定する方法が本当にわかりません。

次のコードが機能しません:

var entities = retrieveRecords("trainingSet?$filter=trainingId eq guid'" + GetLookUpData("trainingid").id + "'");
    if (entities != null) {
        if (entities.d.results.length > 0) {
            if (entities.d.results[0]["Price"] != null) {
                alert(entities.d.results[0]["Price"]);
                Xrm.Page.getAttribute("price").setValue(entities.d.results[0]["Price"].getValue());
                Xrm.Page.getAttribute("price").setSubmitMode("always");
            }

        }
    }

エラーは、数値または null 以外のコントロールのみであると述べています。

どんな助けでも本当に感謝します! ありがとう!

4

2 に答える 2

6

私は eval のファンではありませんが、これを以前に使用したことがあります。

function SetMoneyAttribute(value, attribute) {
                      Xrm.Page.getAttribute(attribute)
                    .setValue(parseFloat(eval(value)));
        }

これは、クエリされた値でフォーム フィールドを設定することに関するブログ投稿です。

http://crmscape.blogspot.com/2011/03/crm-2011-odata-json-and-crm-forms.html

于 2011-08-25T13:35:03.620 に答える
1
//mimic crm object model
var Xrm = { 
    Page : { 
        getAttribute : function(sAttr) { 
            return { 
                setValue : function(nValue) { 
                    alert(sAttr + ': ' + nValue);
                }
            }; 
        }  
    } 
};

function mySetValue(sAttr, nValue, nDefault) {
    Xrm.Page.getAttribute(sAttr)
        .setValue(
        !isNaN(nValue = parseFloat(nValue)) || 
        !isNaN(nValue = nDefault)
        ? nValue
        : null);                
} 

//call with various types of values
mySetValue("new_attr1",0);
mySetValue("new_attr2","");
mySetValue("new_attr3",4);
mySetValue("new_attr4",34.3434);
mySetValue("new_attr5","545.43");
mySetValue("new_attr6",{},0);
//mySetValue("new_attr7",entities.d.results[0]["Price"], 100.00);

エラーが示すように、属性には数値または null のみが必要です。最初の isNaN に準拠するために、parseFloat が数値を返すかどうかをチェックします。undefined が返された場合、デフォルト値 (指定されている場合) から数値を取得しようとします。それが未定義で数値でない場合は、null 値が割り当てられます。デフォルトが必要ない場合、またはデフォルトが常に既知の場合 (つまり、null または 0.0) は、2 番目の isNaN テストを省略できます。

于 2013-11-21T00:57:26.270 に答える