Allow SalesLogix currency controls in the web client to accept negative values

The SalesLogix currency controls in SalesLogix do not by default allow a negative number to be entered.  You can change this by editing the sage-controls-currency.js and sage-control.js file.  The sage-controls.js file is the file that is actually used by the web client and is a minified compiled version of all of the other sage-controls files.

There are two functions that need to be altered.  One on the client keypress, and one on the client change event of the control.


The key press code needs to be changed like so (change in yellow):

function RestrictToCurrency(e) {
    var code = e.charCode || e.keyCode;
    return (code == this.Symbol.charCodeAt(0) || code == this.NegativeSign.charCodeAt(0) || RestrictToNumeric(e, this.GroupSeparator.charCodeAt(0), this.DecimalSeparator.charCodeAt(0)));

Then the other client script function to be altered is the on change.  There is a function called Currency_FormatCurrency()  that is used to format the value.  Based on your currency settings you may need to alter it differently.  For US regional settings if you look in the case statement and change the first case, it works.

        var currencyValue = “”;
        if (isNegative)
            switch (this.NegativePattern)
                case 0: // ($n)
                    currencyValue = String.format(“-{0}{1}”, this.Symbol, result);

 Making these 2 changes should allow the currency control to accept a – sign to be entered. 


Kris Halsrud

Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) news and product updates!

You have Successfully Subscribed!