Iho*_*hor 5 javascript jquery crm dynamics-crm-2011
我面临着一个有趣的任务:在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"}]);
Run Code Online (Sandbox Code Playgroud)
请帮忙!
好吧,我自己找到了解决方案,就在这里。我们需要从查找货币字段中检索货币 id 并将其传递给函数,然后函数将按 id 返回货币对象,例如 SDK 中的函数:
function retrieveCurrency(CurrencyId) {
SDK.REST.retrieveRecord(
CurrencyId,
"TransactionCurrency",
null,null,
function (currency) {
ChangeCurrencySymbol(currency);
},
errorHandler
);
}
Run Code Online (Sandbox Code Playgroud)
来自 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;
});
}
}
Run Code Online (Sandbox Code Playgroud)
经过我的研究,我发现这是迄今为止通过 javascript 为货币查找添加价值后动态更改货币符号的唯一方法。