Formula en crystal...

18/03/2006 - 21:17 por Daniel G. Samborski | Informe spam
Hola, tengo el siguiente problema.
En una tabla tengo un campo Talle que es Varchar ya que se guardan talles
numericos y de caracteres.
1, 2, 2.5, X, etc..
Lo que deseo hacer es que en el Crystal distinga si es, por ejemplo, X
muestre el valor como viene de la base de datos pero si es un numero lo
convierta a doble.

Esta es la funcion que utilizo, pero no me permite tener dos tipos distintos
en un mismo if.


if {MostrarTalles;1.Talle}="" OR {MostrarTalles;1.Talle}="X" then
{MostrarTalles;1.Talle}
else
CDbl ({MostrarTalles;1.Talle})


Alguien tiene alguna idea de como lograr esto.

Daniel.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
19/03/2006 - 11:11 | Informe spam
Daniel,

Tal como lo quieres no se puede hacer, la función tiene que devolver un
mismo tipo de datos tanto por la rama 'if' como por la 'else'.
Lo que sí puedes hacer (probablemente te valga) es FORMATEAR el número de
cierta forma (dos decimales, por ejemplo) usando la función ToText(). Por
ejemplo:

IF {MostrarTalles;1.Talle}="" OR {MostrarTalles;1.Talle}="X" THEN
{MostrarTalles;1.Talle}
ELSE
ToText(CDbl ({MostrarTalles;1.Talle}), 2, "")

Esta función sí vale porque siempre devuelve una cadena.

Slds - Octavio



"Daniel G. Samborski" escribió en
el mensaje news:
Hola, tengo el siguiente problema.
En una tabla tengo un campo Talle que es Varchar ya que se guardan talles
numericos y de caracteres.
1, 2, 2.5, X, etc..
Lo que deseo hacer es que en el Crystal distinga si es, por ejemplo, X
muestre el valor como viene de la base de datos pero si es un numero lo
convierta a doble.

Esta es la funcion que utilizo, pero no me permite tener dos tipos
distintos en un mismo if.


if {MostrarTalles;1.Talle}="" OR {MostrarTalles;1.Talle}="X" then
{MostrarTalles;1.Talle}
else
CDbl ({MostrarTalles;1.Talle})


Alguien tiene alguna idea de como lograr esto.

Daniel.

Respuesta Responder a este mensaje
#2 Daniel G. Samborski
19/03/2006 - 16:34 | Informe spam
Gracias, lo probare.

Daniel

"Octavio Hernandez" escribió en el mensaje
news:e$
Daniel,

Tal como lo quieres no se puede hacer, la función tiene que devolver un
mismo tipo de datos tanto por la rama 'if' como por la 'else'.
Lo que sí puedes hacer (probablemente te valga) es FORMATEAR el número de
cierta forma (dos decimales, por ejemplo) usando la función ToText(). Por
ejemplo:

IF {MostrarTalles;1.Talle}="" OR {MostrarTalles;1.Talle}="X" THEN
{MostrarTalles;1.Talle}
ELSE
ToText(CDbl ({MostrarTalles;1.Talle}), 2, "")

Esta función sí vale porque siempre devuelve una cadena.

Slds - Octavio



"Daniel G. Samborski" escribió en
el mensaje news:
Hola, tengo el siguiente problema.
En una tabla tengo un campo Talle que es Varchar ya que se guardan talles
numericos y de caracteres.
1, 2, 2.5, X, etc..
Lo que deseo hacer es que en el Crystal distinga si es, por ejemplo, X
muestre el valor como viene de la base de datos pero si es un numero lo
convierta a doble.

Esta es la funcion que utilizo, pero no me permite tener dos tipos
distintos en un mismo if.


if {MostrarTalles;1.Talle}="" OR {MostrarTalles;1.Talle}="X" then
{MostrarTalles;1.Talle}
else
CDbl ({MostrarTalles;1.Talle})


Alguien tiene alguna idea de como lograr esto.

Daniel.





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida