Power Builder - me pueden ayudar con esto

 
Vista:

me pueden ayudar con esto

Publicado por amilcar (327 intervenciones) el 02/07/2004 21:44:12
hola a todos, disculpen, es la tercera vez que pongo este post pero sigo con el problame , tengo un prolemita con la configuracion regional
al ingresar al sistema la cambio asi

RegistrySet(ls_hKey, "sDecimal", RegString!,'.' )
RegistrySet(ls_hKey, "sThousand", RegString!,',' )
RegistrySet(ls_hKey, "sShortdate", RegString!,'dd/MM/yyyy' )

pero al ingresar datos en unos singlelineedit no me respeta el cambio

ejemplo
sle_1.text=1,25
sle_2.text=1,20
st_1.text= string(dec(sle_1.text)+dec(sle_2.text),"####0..00")
en st_1.text me queda 275 en vez de 2.75

alguien me puede dar una idea del problema
gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:me pueden ayudar con esto

Publicado por Ricardo (1957 intervenciones) el 02/07/2004 23:41:25
Si evaluas cada sle por separado, por medio del depurador o con messagebox, para ver si el sle_2.text te lo marca como .75, ya que si no te marca en decimales, es por ello que no te suma dicha cantidad como decimal.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Respetar simbolo decimal, configuracion (1)

Publicado por Oscar (1178 intervenciones) el 03/07/2004 22:17:28
Hola Amilkar:
Estuve siguiendo tu caso atentamente. Pude concluir que el problema no reside en la configuración regional. Si cambias mediante script o de manera manual, te seguirá arrojando resultados erroneos.

Más bien creo, que el problema reside en la función DEC; ya que no se "resiente" cuando le pasas otro símbolo decimal que no sea el correcto y te arroja cualquier estupidez.

Ejemplo:
* Si en la configuración regional, el símbolo decimal es: punto, los resultados son:
- DEC(1.25)-->1.25 (correcto)
- DEC(1,25)-->125 (incorrecto)

* Si en la configuración regional, el símbolo decimal es: coma, los resultados son:
- DEC(1,25)-->1,25 (correcto)
- DEC(1.25)-->125 (incorrecto)

Entonces vamos a crear una función, que te respete la configuración regional (similar a Excel). O sea, si en la configuración regional, el símbolo decimal es punto; los resultados te deben arrojar en punto; y si el símbolo decimal es coma; los resultados te deben arrojar en coma. Independientemente, si en los SingleLineEdit, introduces los valores con punto o con coma.

//(CONTINUA...)
En el próximo post, se explica la función.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Respetar simbolo decimal, configuracion (2)

Publicado por Oscar (1178 intervenciones) el 03/07/2004 22:21:20
//(CONTINUACIÓN...)
1. Creamos una función (File/New/PB Object/Function)
2. Llenamos asi:
- Return Type: decimal; Function Name: mifuncion
- Argument Type: cadena
3. Cuerpo de la función:
//-----------------------------------
Decimal ld_resultado
Integer li_posicion

If cadena=string(dec(cadena)) then
ld_resultado=dec(cadena)
else
//Si en la cadena halla un punto
If Match(cadena,"\.") then
//Encontramos la posicion de ese punto
li_posicion=Pos(cadena,".")
//Reemplazamos el . por la ,
ld_resultado=dec(replace(cadena,li_posicion,1,","))
else
//Encontramos la posicion de esa coma
li_posicion=Pos(cadena,",")
//Reemplazamos la , por .
ld_resultado=dec(replace(cadena,li_posicion,1,"."))
end if
end if
return (ld_resultado)
//-----------Fin-------------
4. Guardá los cambios.
Ahora recién puedes usar mifuncion:
Ejemplo:
st_1.text= string(mifuncion(sle_1.text)+mifuncion(sle_2.text))

Ventajas (creo):
- No importa la configuración regional del equipo (puede estar con punto o con coma)
- Puedes ingresar los valores con el teclado normal o con el numérico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

gracias a ambos

Publicado por amilcar (327 intervenciones) el 05/07/2004 23:51:41
muchas gracias, muy genitl de su parte
un saludo desde argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar