Crm 2011货币字段不会更改货币符号

时间:2013-07-05 15:11:50

标签: javascript jquery dynamics-crm-2011 crm

我面临着一个有趣的任务:在crm 2011中,我有一张发票表单,其中放置了带有发票行项目的子网格。发票行实体表单包含货币字段和货币查找,问题是与发票行中的货币相关的所有字段都以美元符号“$”显示,但所有这些字段都需要根据“凭证货币”字段中选择的值显示符号发票。

它可以是GB磅,当我创建发票行实体形式时,货币查找显示为GB磅,但货币字段仍显示为美元符号'$'。只有当用户将其更改为null并返回到GB时才会更改它们。

我将发票单据货币值的id和名称作为参数(p_DocumentCurrencyId,p_DocumentCurrencyName)发送到发票行实体表单,并在其上填写货币查询作为以下内容:

Xrm.Page.getAttribute("transactioncurrencyid").setValue([{ id:   parameters["p_DocumentCurrencyId"], name: parameters["p_DocumentCurrencyName"], entityType:    "transactioncurrency"}]);

请帮忙!

1 个答案:

答案 0 :(得分:2)

好的,我自己找到了解决方案,就在这里。我们需要从查找货币字段中检索货币ID并将其传递给函数,它将通过id返回货币对象,例如SDK中的函数:

function retrieveCurrency(CurrencyId) {
SDK.REST.retrieveRecord(
 CurrencyId,
 "TransactionCurrency",
 null,null,
 function (currency) {
  ChangeCurrencySymbol(currency);
 },
 errorHandler
 );
}
来自MS SDK http://msdn.microsoft.com/en-us/library/gg334427.aspx

将从成功回调中调用的函数并替换字符:

function ChangeCurrencySymbol(currencyInfo) {
if (currencyInfo != null) {
    var currencySymbol = currencyInfo.CurrencySymbol;
    // Looping through all currency controls on the form and sets the currency symbol.
    $.each($("span.ms-crm-Money-CurrencySymbol"), function()
    {
        this.textContent = currencySymbol;
    });        
}
}

经过我的研究,我发现这是通过javascript向货币查询添加值后动态更改货币符号的唯一方法。