我面临着一个有趣的任务:在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"}]);
请帮忙!
答案 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向货币查询添加值后动态更改货币符号的唯一方法。