Removing the Comma (or Changing the Format Pattern) in the Numeric Control in Infor CRM Web

The Numeric control used in QuickForms in the Infor CRM Web client is rendered as a Dojo Dijit at runtime. The properties editor in Application Architect does expose a few properties you can set to change how the numeric value is formatted, such as decimal places, etc. However, it doesn’t allow you to specify a format or pattern for the numeric value. By default, it will always show a comma. This is less than ideal for some numeric values, for example, if your numeric value is a year – or any other value where you just don’t want a comma. The Dojo NumericTextBox does allow for a pattern to be specified, this just isn’t exposed in the control in Application Architect. However, we can modify this at runtime.

To remove the comma from numeric value by first getting a reference to the widget itself and then setting the pattern. If we set the pattern to “#” this will just display the numeric value without any extra formatting. The widget that gets created at runtime isn’t just the Numeric control’s ClientID. We must append “_NumericTextbox_NumberTextBox” to the end of it to get the correct widget. For example, if the Numeric control’s ID is “StartYear”, our widget name will be StartYear.ClientID + “_NumericTextbox_NumberTextBox”. Once we get a reference to the widget, we can change it’s pattern. Finally, to trigger the change in the displayed value, we can trigger it’s blur event handler which will update what is displayed in the control based on the new pattern.

The code to remove the comma would look like this. Add the following to a Load Action:

// javascript code to get control, change pattern, and trigger blur
var script = @"dojo.ready(function() {{
                   var d = dijit.byId('{0}_NumericTextbox_NumberTextBox');
                   d.constraints.pattern = '#';
                   d._onBlur();
               }});";

// inject code on page, change StartYear to the name of your numeric control
ScriptManager.RegisterStartupScript(this, GetType(), "numericFormatScript", string.Format(script, StartYear.ClientID), true);

Now, there will no longer be a comma added to the numeric value and the control will still only allow numeric values as normal. Of course, it would be nice if Infor would add an exposed property for the format in the control in Application Architect, then none of this would be necessary. At least for now, you can manipulate it, if needed, at runtime.

ABOUT THE AUTHOR

Ryan Farley

Ryan Farley is the Director of Development for Customer FX and creator of slxdeveloper.com. He's been blogging regularly about SalesLogix since 2001 and believes in sharing with the community. He loves C#, Javascript, Python, web development, open source, and Linux. He also loves his hobby as an amateur filmmaker.

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!