Regional settings - Forum - OpenEdge Deployment - Progress Community

Regional settings

  • 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


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

    Architect of the SmartComponent Library and WinKit

    Consultingwerk Ltd.

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

  • 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?


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