GeneXus - Duda en casteo

   
Vista:

Duda en casteo

Publicado por pedro (90 intervenciones) el 04/10/2007 21:56:16
Hola

Tengo una duda sobre casteo de variables, resulta que tengo la siguiente expresion:

&UserId= udp(PObtenerUser, &CookieVal)

donde:&UserId es N 4
udp(PObtenerUser, &CookieVal) devuelve C 30

el tema es que al udp lo envuelvo con un val(udp(PObtenerUser, &CookieVal)) para que convierta a numerico, pero me dice error al convertir de short a character.... es realidad deberia ser al reves ya que convierte de char a N 18.2 -que es lo que devuelve val()- y luego debe reducirlo a N4... en fin no logro resolver el tema, que me sugieres?

saludos y gracias
pedrok
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

Replanteo de consulta

Publicado por pedrok (90 intervenciones) el 09/10/2007 00:05:01
para hacerla simple, necesito convertir una variable character de 30, en numerica, para almacenar en una variable numerica de 5.... como se hace? con val () me da error... y segun busque en el manual es la unica que permite la conversion...

espero puedan ayudarme
saludos
pedro
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:Replanteo de consulta

Publicado por Luis Alberto (120 intervenciones) el 09/10/2007 03:29:38
Realmente se lo hace con val(&String), deberás colocar tu instrucción para ver que puedes estar haciendo mal.

Exitos
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:Replanteo de consulta

Publicado por pedro (90 intervenciones) el 09/10/2007 22:19:32
gracias luis

Te cuento que tengo la siguiente expresion:

&UserId= val(udp(PObtenerUser, &CookieVal) )

donde:&UserId es N 4
udp(PObtenerUser, &CookieVal) devuelve C 30

entonces al compilar me da que no puedo convertir de short a caracter?? y no s
porque me da este mensaje...en todo caso el error seria de caracter a numerico... en fin ese es el problema que tengo hace tiempo y no puedo resolver...

Saludos y espero tu ayuda.
pedrok
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:Replanteo de consulta

Publicado por Luis Alberto (120 intervenciones) el 09/10/2007 22:52:33
Mira Pedrok, prueba haciendolo así:

call(PObtenerUser, &CookieVal)
&UserId= val(CookieVal)

Exitos
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:Replanteo de consulta

Publicado por pedrok (90 intervenciones) el 10/10/2007 00:06:15
Luis

El procedimiento PObtenerUser tiene como variable de entrada &CookieVal y como salida UserStr que es C 30 y contiene el Id Usuario pero en string. Por eso lo llamaba en un udp...

espero tu consejo
saludos
pedrok
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:Replanteo de consulta

Publicado por Luis Alberto (120 intervenciones) el 10/10/2007 17:27:00
Que tal,

Prueba:

&Variable_C30 = udp(PObtenerUser, &CookieVal)
&UserId= val(&Variable_C30)

Exitos
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:Replanteo de consulta

Publicado por pedrok (90 intervenciones) el 11/10/2007 22:25:44
Luis

muchas gracias por tu ayuda.

Efectivamente creando una variable auxiliar c30 lo pude resolver, pero me quedo la duda de porque no funciono directamente? siempre para hacer conversiones de variables debo usar variables auxiliares?

Una ultima pregunta, existe alguna funcion como el format de VB? para poder mostrar variables como uno quiera?
por ejemplo:

TotalVentas es float, con format la puedo mostrar:
1.320,00
1320
1320,00

o como sea necesario...
O en Gx para estos casos debo crear una variable con el formato que yo quiero mostrar? &variable_mostrar= &Totalentas

Espero tu ayuda y gracias de nuevo
Saludos
pedrok
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