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.
 

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.

Preguntas similares