Javascript 在CRM 2011中更改表单上的货币时更改货币字段的符号

Javascript 在CRM 2011中更改表单上的货币时更改货币字段的符号,javascript,dynamic,dynamics-crm-2011,dynamics-crm,currency,Javascript,Dynamic,Dynamics Crm 2011,Dynamics Crm,Currency,你们中的一些人可能在Microsoft Dynamics CRM 2011中遇到过这个问题,但今天我被分配任务,动态更改货币查找值,以便在出现任何差异时匹配帐户货币。我只需调用我的setLookupValueJavaScript函数,根据帐户货币设置货币值,就可以做到这一点 setLookupValue(“transactioncurrencyid”、“transactioncurrency”、accountCurrency.Id、accountCurrency.Name); 在进行单元测试之

你们中的一些人可能在Microsoft Dynamics CRM 2011中遇到过这个问题,但今天我被分配任务,动态更改
货币
查找值,以便在出现任何差异时匹配帐户货币。我只需调用我的
setLookupValue
JavaScript函数,根据帐户货币设置货币值,就可以做到这一点

setLookupValue(“transactioncurrencyid”、“transactioncurrency”、accountCurrency.Id、accountCurrency.Name);
在进行单元测试之后,货币查找值发生了完美的变化,但我观察到,表单上使用货币数据类型定义的所有字段的货币符号都没有变为目标货币,在我的例子中,目标货币是
accountCurrency


e、 g.
Currency
字段已从美元(USD)更改为欧元(EUR),但所有字段都将
USD
显示为前缀

在网上花了几个小时后,我从不同来源收集了一些关于这个问题的有用信息

我已经成功地设置了两种方法,并在IE浏览器for Microsoft Dynamics CRM 2011上测试了这两种方法,以动态更改表单上每个货币字段的货币符号


  • 使用OData(简单有效,无跨浏览器兼容性问题):
函数更改CurrencySymbolOData(guid){
returnValue=retrieveMultiple(“TransactionCurrencySet”,“?$filter=TransactionCurrencyId eq guid'+guid+”);
if(returnValue!=null&&returnValue[0]!=null){
var currencyInfo=返回值[0];
//循环遍历窗体上的所有控件并设置货币符号。
var-oCtrl;
对于(变量i=0;i
用法:

changeCurrencySymbolOData(accountCurrency.Id);
其中
accountCurrency
欧元(EUR)货币


  • 使用获取XML
函数changeCurrencySymbolFetchXML(isoCurrencyCode){
var currencySymbolName=crmForm.all.transactioncurrencyid.cursymclm;
//确保货币存在。
var fetchCurr='';
fetchCurr+='';
fetchCurr+='

    • 在网上花了几个小时后,我从不同来源收集了一些关于这个问题的有用信息

      我已经成功地设置了两种方法,并在IE浏览器for Microsoft Dynamics CRM 2011上测试了这两种方法,以动态更改表单上每个货币字段的货币符号


      • 使用OData(简单有效,无跨浏览器兼容性问题):
      函数更改CurrencySymbolOData(guid){
      returnValue=retrieveMultiple(“TransactionCurrencySet”,“?$filter=TransactionCurrencyId eq guid'+guid+”);
      if(returnValue!=null&&returnValue[0]!=null){
      var currencyInfo=返回值[0];
      //循环遍历窗体上的所有控件并设置货币符号。
      var-oCtrl;
      对于(变量i=0;i
      用法:

      changeCurrencySymbolOData(accountCurrency.Id);
      
      其中
      accountCurrency
      欧元(EUR)货币


      • 使用获取XML
      函数changeCurrencySymbolFetchXML(isoCurrencyCode){
      var currencySymbolName=crmForm.all.transactioncurrencyid.cursymclm;
      //确保货币存在。
      var fetchCurr='';
      fetchCurr+='';
      fetchCurr+='
      

    在深入研究JS后发现,有一个简单的“受支持”功能可以通过JavaScript更改或隐藏表单上的货币符号。在IE和Chrome for CRM 365上对此进行了测试

    hideCurrencySymbol = function(fieldName)
    
    {
        var field = Xrm.Page.getAttribute(fieldName);
        if(field)
        {
            field.setCurrencySymbol("")//Or any symbol you want
        }
    }
    

    在深入研究JS后,发现有一个简单的“受支持”功能可以通过JavaScript更改或隐藏表单上的货币符号。在IE和Chrome for CRM 365上对此进行了测试

    hideCurrencySymbol = function(fieldName)
    
    {
        var field = Xrm.Page.getAttribute(fieldName);
        if(field)
        {
            field.setCurrencySymbol("")//Or any symbol you want
        }
    }
    

    请注意,此代码不兼容跨浏览器,并且使用crm 4.0终结点,该终结点已从crm 2011联机实例中删除(使用office 365身份验证)不确定跨浏览器兼容性,但它在IE中运行良好。此外,我已经测试了此代码,现在在我的CRM 2011项目中使用它,工作非常完美。不受支持的DOM访问:-1,可能只是触发刷新会让trickpay注意到此代码不兼容跨浏览器,并且它使用CRM 4.0端点,即从crm 2011在线实例中删除(使用office 365身份验证)不确定跨浏览器兼容性,但它在IE中运行良好。此外,我已经测试了此代码,现在在我的crm 2011项目中使用它,工作正常。不支持的DOM访问:-1,可能触发刷新就可以了