Separador de miles, comas en un label...
Hace unos días te hice una consulta, luego de mucho investigar y batallar, llegué a esto:
Creé una prg de procedure, que llamé comas. Desde un form lo llamo así:
thisf form.label21.caption= comas(valor)
Este es el código:
PROCEDURE comas
PARAMETERS valor
num=INT(valor)
cuantos=LEN(ALLTRIM(str(num,18,0)))
grupos=int(cuantos/3)
sobran=MOD(cuantos,3)
tex=ALLTRIM(STR(num,18,0))
ss=""
IF cuantos <= 3
RETURN tex
ELSE
IF sobran > 0
cero=SUBSTR(tex,1,sobran)
tex=SUBSTR(tex,(sobran+1))
ENDIF
DIMENSION mat(grupos)
FOR i = 1 TO grupos
STORE SUBSTR(tex,1,3) TO mat(i)
STORE SUBSTR(tex,4) TO tex
ss=ss+mat(i)+","
ENDFOR
DO case
CASE cuantos=6
cuantos1=(LEN(ALLTRIM(ss)))
ss1=SUBSTR(ss,1,(cuantos1-1))
RETURN ss1
CASE cuantos=9
cuantos1=(LEN(ALLTRIM(ss)))
ss1=cero+","+SUBSTR(ss,1,(cuantos1-1))
RETURN ss1
CASE cuantos=12
cuantos1=(LEN(ALLTRIM(ss)))
ss1=cero+","+SUBSTR(ss,1,(cuantos1-1))
RETURN ss1
OTHERWISE
cuantos1=(LEN(ALLTRIM(ss)))
ss1=cero+","+SUBSTR(ss,1,(cuantos1-1))
RETURN ss1
ENDCASE
ENDIF
RETURN ss1
ENDPROC
Espero te guste y si crees que se puede mejorar, pues adelante, estoy abierto a cualquier posibilidad.
Una vez más Gracias y Saludos