Hi ccc2,
there are the masks for you! You can build the DisplayMask and the InputMask according to your needs:
// Preis in Table_LZ: Nachkommastellen setzen
IF KUNDEN.KUPREISLISTE > 0 THEN
IF HReadSeekFirst(PRLNAME,PN_NUM,KUNDEN.KUPREISLISTE) THEN
IF PRLNAME.PN_NACHKOMMAST = 3 THEN
TABLE_LZ.LZ_PREIS..DisplayMask = "+99999"+DezimalTrennzeichen+"999"
EDIT6..DisplayMask = "+99999"+DezimalTrennzeichen+"999"
EDIT6..InputMask = "+99999"+DezimalTrennzeichen+"999"
ELSE
TABLE_LZ.LZ_PREIS..DisplayMask = "+99999"+DezimalTrennzeichen+"99"
EDIT6..DisplayMask = "+99999"+DezimalTrennzeichen+"99"
EDIT6..InputMask = "+99999"+DezimalTrennzeichen+"99"
END
END
END
The variable DezimalTrennzeichen is comma or dot according to settings of the operating system. You can retrieve it using a small procedure:
PROCEDURE FindeAktDezTrenner()
MAX_BUFFER_SIZE is 2-byte int=100
LOCALE_USER_DEFAULT is system int=1024
LOCALE_SMONDECIMALSEP is system int=22
mApiReturn is system int
mBuffer is string
mBufferSize is system int
mBuffer = RepeatString(Charact(0),MAX_BUFFER_SIZE)
mBufferSize = MAX_BUFFER_SIZE - 1
mApiReturn = CallDLL32("kernel32","GetLocaleInfoA",LOCALE_USER_DEFAULT,LOCALE_SMONDECIMALSEP,&mBuffer,mBufferSize)
mBuffer = Left(mBuffer,mApiReturn - 1)
RESULT mBuffer
Kind regards,
Guenter Predl
office@windev.at