Regional settings

Posted by Elsworth Burmeister on 20-Jul-2016 04:37

Hi guys

We sit with an issue with our web client application in regards to the different regional settings on different users pc's. Decimal and comma formats on the different pc's are causing problems with decimal figures in the total fields in the application. 

We have tired setting on the client side in the actual programs like this SESSION:SET-NUMERIC-FORMAT(",",".").

We have also tried using the -numsep 44 -numdec 46 in the startup parameters of the actual web client deployment.

Both these ways dont work.

anyone know a work around to this?

OE 11.3

TIA

All Replies

Posted by Mike Fechner on 20-Jul-2016 04:47

Can you provide more details on the issues?

Best practices: All numeric values should always just be stored in numeric fields (INTEGER, INT64 and DECIMAL) and never be stored or send back and forth to/from the AppServer as CHARACTER Values.

Use the -useOsLocale Startup Parameter do set the -d -E -numsep -numdec startup parameters dynamically based on the users windows settings.

Posted by Matt Gilarde on 20-Jul-2016 04:50

Are you using ABL frames and widgets or are there .NET controls involved? Can you give a small code example which demonstrates the issue?

Posted by JPMeister on 11-Jan-2017 03:21

Hi Guys,

Apologies for not replying sooner, we tried both these methods but i think we haven't actually supplied enough details on the problem itself.

Here is an example(Using ultramaskededitors to keep decimal values):

The value on the client side: 1200,00 (with a comma)

Appserver side reads it as 120000.00 (with a dot)

So what we would actually like to do is make sure that the client software doesn't use the default Decimal and Thousands separator set up on the users machine and instead the same as the appserver.

We would like it to use comma as the thousands separator and full stop as the decimal.

Is there a way to do this?

Regards,

Posted by JPMeister on 11-Jan-2017 07:42

Ok found a solution to the problem.

DEFINE VARIABLE ciDef AS System.Globalization.CultureInfo NO-UNDO.

ciDef = System.Globalization.CultureInfo:CreateSpecificCulture("en-US").

ciDef:NumberFormat:NumberDecimalSeparator = ".".

ciDef:NumberFormat:NumberGroupSeparator = ",".

THIS-OBJECT:CultureInfo = ciDef.

Used this in the inherited control and it looks like it has solved the problem.

Thanks

This thread is closed