• Viernes 3 de Mayo de 2024, 04:03

Autor Tema:  Configuración Regional  (Leído 3602 veces)

Michael PC

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Configuración Regional
« en: Viernes 21 de Abril de 2006, 18:44 »
0
Hola amigos:
 
Tengo el siguiente problema, desde mi aplicación en PB verifico la configuración regional de la PC y si encuentro que el simbolo decimal es "," lo cambio por "." y si el separador de miles es "." lo cambio por ",".
 
Dicho cambio lo realizo de la siguiente manera:
 
   RegistrySet(ls_regKey, "sDecimal" , RegString!, '.')
   RegistrySet(ls_regKey, "sThousand", RegString!, ',')
 
Llegó a realizar dicho cambio pero la aplicación parece no tomar en cuenta este cambio y me muestra la configuración inicial que era la errada; esto provoca que al mostrar valores numericos me aumente dos digitos a la izquierda, es decir, si el valor real es 12.50 lo muestra como 12500.00 y con el siguiente formato 12.500,00
 
Como puedo hacer para que mi aplicativo reconozca el cambio realizado?? Que me esta faltando realizar?? Trabajo con PB 8.0 y SQL Server 2000.
 
Gracias por su tiempo
MPC-SOFT

carlos_luis

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Configuración Regional
« Respuesta #1 en: Miércoles 26 de Abril de 2006, 01:11 »
0
Que tal.... yo tambien tenia este problema cuando distribuia mis aplicaciones ya empaquetadas, asi que opte por lo siguiente...

Te recomiendo que utilices la configuracion Español-Mexico, la cual la puedes cambiar desde el Panel de Control de Guindous, o si lo quieres hacer mas elegante utiliza esta funcion, La tienes que colocar en el evento open de tu aplicacion, así cada vez q inicias la aplicacion verifica cual es la configuracion Regional Actual, y si no es la adecuada la pone en Español-Mexico... aqui va el codigo
 
// Funcion f_cambia_conf_regional( /*no recibe parametros....*/)

String ls_pais
RegistryGet("HKEY_CURRENT_USER\Control Panel\International","sCountry",RegString!, ls_pais)
if trim(ls_pais) <> "México" then
   String   ls_regKey
   ls_regKey = "HKEY_CURRENT_USER\Control Panel\International"
   RegistrySET(ls_regKey, "iCountry",         "52")
   RegistrySET(ls_regKey, "iCurrDigits",      "2")
   RegistrySET(ls_regKey, "iCurrency",         "0")
   RegistrySET(ls_regKey, "iDate",            "1")
   RegistrySET(ls_regKey, "iDigits",         "2")
   RegistrySET(ls_regKey, "iLZero",            "1")
   RegistrySET(ls_regKey, "iMeasure",         "0")
   RegistrySET(ls_regKey, "iNegCurr",         "1")
   RegistrySET(ls_regKey, "iTime",            "0")
   RegistrySET(ls_regKey, "iTLZero",         "1")
   RegistrySET(ls_regKey, "Locale",            "0000080A")
   RegistrySET(ls_regKey, "s1159",            "a.m.")
   RegistrySET(ls_regKey, "s2359",            "p.m.")
   RegistrySET(ls_regKey, "sCountry",         "México")
   RegistrySET(ls_regKey, "sCurrency",         "$")
   RegistrySET(ls_regKey, "sDate",            "/")
   RegistrySET(ls_regKey, "sDecimal",         ".")
   RegistrySET(ls_regKey, "sLanguage",         "ESM")
   RegistrySET(ls_regKey, "sList",            ",")
   RegistrySET(ls_regKey, "sLongDate",         "dddd, dd' de 'MMMM' del 'yyyy")
   RegistrySET(ls_regKey, "sShortDate",      "dd/MM/yyyy")
   RegistrySET(ls_regKey, "sThousand",         ",")
   RegistrySET(ls_regKey, "sTime",            ":")
   RegistrySET(ls_regKey, "sTimeFormat",      "hh:mm:ss tt")
   RegistrySET(ls_regKey, "iTimePrefix",      "0")
   RegistrySET(ls_regKey, "sMonDecimalSep",   ".")
   RegistrySET(ls_regKey, "sMonThousandSep",   ",")
   RegistrySET(ls_regKey, "iNegNumber",      "1")
   RegistrySET(ls_regKey, "sNativeDigits",   "0123456789")
   RegistrySET(ls_regKey, "NumShape",         "1")
   RegistrySET(ls_regKey, "iCalendarType",   "1")
   RegistrySET(ls_regKey, "iFirstDayOfWeek",   "6")
   RegistrySET(ls_regKey, "iFirstWeekOfYear","0")
   RegistrySET(ls_regKey, "sGrouping",         "3;0")
   RegistrySET(ls_regKey, "sMonGrouping",      "3;0")
   RegistrySET(ls_regKey, "sPositiveSign",   "")
   RegistrySET(ls_regKey, "sNegativeSign",   "-")
else
   return
end if


Luego en el evento open de tu aplicaion pones una linea como esta y se soluciona tu problema...

Ahhh, soy Ecuatoriano...
Carlos Luis Solorzano

f_cambia_conf_regional( )

dcnseC

  • Miembro activo
  • **
  • Mensajes: 38
  • Nacionalidad: pe
    • Ver Perfil
    • dcnseC Soft
Re: Configuración Regional
« Respuesta #2 en: Martes 3 de Julio de 2007, 18:48 »
0
necesitaba esta informacion...
GRACIAS