2013-07-05 12 views
5

Ich bin mit interessanter Aufgabe konfrontiert: in crm 2011 habe ich ein Rechnungsformular, in dem subgrid mit Rechnungsposten platziert. Das Entitätsformular der Rechnungszeile enthält Währungsfelder und Währungsnachschlage, und das Problem besteht darin, dass alle Felder, die sich auf die Währung in der Rechnungszeile beziehen, mit dem US-Dollar-Zeichen '$' angezeigt werden, aber alle Felder müssen entsprechend dem im Feld 'Dokumentenwährung' ausgewählten Wert angezeigt werden einer Rechnung.Crm 2011 Währungsfelder ändert sich kein Währungssymbol

Es kann GB Pfund sein und wenn ich Rechnung Linie Einheit Form es Währung Lookup als GB Pfund angezeigt, aber Währungsfelder immer noch mit US-Dollar-Zeichen '$' angezeigt. Und nur wenn Benutzer es auf Null ändern und zurück zu GB Pfund ändert sich.

I senden Währung Rechnungsbelegwert id und den Namen als Parameter (p_DocumentCurrencyId, p_DocumentCurrencyName) -Leitung Entitätsformular in Rechnung zu stellen und Währung Nachschlag auf sie als foloving füllen:

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

Bitte um Hilfe!

+0

Verwenden Sie die nativen Rechnungs- und Rechnungsdetail-Entitäten oder benutzerdefinierten Entitäten? –

+0

@AndyMeyers: Rechnungsentität ist nativ und Rechnungszeile ist benutzerdefiniert. – Ihor

Antwort

2

Okay, ich habe eine Lösung gefunden, hier ist es. Wir brauchen Währung-ID aus der Lookup-Währungsfeld abzurufen und in Funktion Thet passieren Währung Objekt von id zurückkehren, zum Beispiel Funktion von SDK:

function retrieveCurrency(CurrencyId) { 
SDK.REST.retrieveRecord(
CurrencyId, 
"TransactionCurrency", 
null,null, 
function (currency) { 
    ChangeCurrencySymbol(currency); 
}, 
errorHandler 
); 
} 

von MS SDK http://msdn.microsoft.com/en-us/library/gg334427.aspx

Und die Funktion das wird genannt wird, aus erfolgreichem Rückruf und tun Zeichen den Ersatz von:

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; 
    });   
} 
} 

nach meinen Recherchen fand ich, dass dies der einzige Weg ist nach Währungssymbole, um dynamisch zu ändern, um Währungs Nachschlag von Javascript bisher Mehrwert.

Verwandte Themen