Kbase P95671: How to get Windows decimal symbol using 4GL
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/16/2008 |
|
Status: Unverified
GOAL:
How to get Windows decimal symbol using 4GL
GOAL:
How to get Windows thousand separator using 4GL
FACT(s) (Environment):
Windows NT 32 Intel/Windows 2000
FIX:
Example below use GetLocaleInfoA Windows API to get Windows decimal symbol and Windows thousand separator.
It was tested in Windows 2000 with Progress 9.1D.
PROCEDURE GetLocaleInfoA EXTERNAL "kernel32":U:
DEFINE INPUT PARAMETER Locale AS LONG.
DEFINE INPUT PARAMETER dwFlags AS LONG.
DEFINE INPUT-OUTPUT PARAMETER lpLCData AS CHAR.
DEFINE INPUT PARAMETER cchData AS LONG.
DEFINE RETURN PARAMETER cchReturned AS LONG.
END PROCEDURE.
DEFINE VARIABLE cOSDecimalPoint AS CHARACTER NO-UNDO.
DEFINE VARIABLE cOSThousandSeparator AS CHARACTER NO-UNDO.
DEFINE VARIABLE iReturnValue AS INTEGER NO-UNDO.
IF OPSYS = "win32":U THEN
DO:
/* Numeric point */
ASSIGN cOSDecimalPoint = FILL("x",50).
RUN GetLocaleInfoA (1024,
14,
INPUT-OUTPUT cOSDecimalPoint,
LENGTH(cOSDecimalPoint),
OUTPUT iReturnValue).
ASSIGN cOSDecimalPoint = TRIM(cOSDecimalPoint).
/* Thousand seperator */
ASSIGN cOSThousandSeparator = FILL("x",50).
RUN GetLocaleInfoA (1024,
15,
INPUT-OUTPUT cOSThousandSeparator,
LENGTH(cOSThousandSeparator),
OUTPUT iReturnValue).
ASSIGN cOSThousandSeparator = TRIM(cOSThousandSeparator).
MESSAGE 'Progress decimal point: ' SESSION:NUMERIC-DECIMAL-POINT SKIP
'Windows decimal point: ' cOSDecimalPoint SKIP
'Progress numeric separator: ' SESSION:NUMERIC-SEPARATOR SKIP
'Windows numeric separator: ' cOSThousandSeparator
VIEW-AS ALERT-BOX.
END.