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:
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.