Foros del Web » Programación para mayores de 30 ;) » .NET »

no imprimir ceros

Estas en el tema de no imprimir ceros en el foro de .NET en Foros del Web. hola, hay alguna forma de que cuando imprimas un listado, y haya algún valor que es 0, en vez de imprimir el cero, que saque ...
  #1 (permalink)  
Antiguo 09/03/2005, 13:57
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
no imprimir ceros

hola,

hay alguna forma de que cuando imprimas un listado, y haya algún valor que es 0, en vez de imprimir el cero, que saque un espacio en blanco?


saludos!
  #2 (permalink)  
Antiguo 09/03/2005, 15:29
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Como estas llenando tu listado.. usando un reader o un dataset..??, pon el code que tienes..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 10/03/2005, 04:02
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
lleno el listado con un dataset.

Es un reporte con Crystal Reports, y bueno , la fuente de datos es el dataset.

El código no lo tengo aquí, si acaso luego lo pondría. Pero tampoco tiene mucho secreto. Porque hago la consulta, y luego lleno el dataset.

Y el problema está en que hay valores que son ceros, y no quiero que salgan impresos o listados.

saludos!
  #4 (permalink)  
Antiguo 10/03/2005, 09:11
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Lo que se me ocurre rapidamente es que indiques desde tu query que no se muestren los que tengan ceros...

Algo así:

Cita:
select * from tabla where campo <> 0
O no ?
  #5 (permalink)  
Antiguo 10/03/2005, 09:22
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
ajjajaa...
  #6 (permalink)  
Antiguo 10/03/2005, 09:25
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Cita:
ajjajaa ???
Que tal stream, , no entendí tu mensaje... jeje
  #7 (permalink)  
Antiguo 10/03/2005, 09:49
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 19 años, 8 meses
Puntos: 2
pudieras crear una columna adicional en tu dataset, que sera de tipo string, y luego preguntas por el valor que tiene tu columna, si esta trae cero pues mandas a imprimir la columna auxiliar que creaste. no se si te serviria porque no he trabajado con Crystal pero bueno es una opción que se ocurrió jeje. Saludos...
  #8 (permalink)  
Antiguo 10/03/2005, 13:05
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Cita:
Iniciado por RootK
Lo que se me ocurre rapidamente es que indiques desde tu query que no se muestren los que tengan ceros...

Algo así:



O no ?

no no, los registros deben listarse igual, pero el campo que tenga un 0, en vez de salir 0, que salga un espacio. Osea:

En verdad está asi:

Id Producto cantidad
-- -------- --------
1 peras 1000
2 manzanas 3000
3 botella 0

pues al imprimir me gustaría que saliera así:

Id Producto cantidad
-- -------- --------
1 peras 1000
2 manzanas 3000
3 botella


Supongo que sería cuestión de llenar el dataset con un bucle, y cuando vea un 0 que ponga un espacio, pero claro, imaginate mirar 10000 registros...irá un poco más lento no?
  #9 (permalink)  
Antiguo 10/03/2005, 14:29
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 19 años, 8 meses
Puntos: 2
freegirl particularmente creo que no necesitas llenar el dataset con un bucle, lo llenarías igual
desde tu select, y luego que lo tienes cargado ahi si necesitarias recorrer el dataset y en
ese bucle vas preguntando por el valor que tiene la columna que te interesa, si esta tiene 0
pues le asignas espacio.

A pesar de que tu dataset tenga 10.000 registros no creo que se haga muy lento recorrerlo.
De todos modos aqui hazle caso a los expertos jeje. Saludos...
  #10 (permalink)  
Antiguo 10/03/2005, 15:27
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Puedes hacerlo de varias formas:
- La más fácil me parece que es configurar las columnas de tu reporte para darle un valor por defecto cuando éste tenga el valor de 0, eso lo puedes hacer seleccionando el elemento de tu reporte y luego click derecho hacer click en "Format...", entras a "Customize" y le asignas el valor por defecto donde dice "Show Zero values as".

- La segunda opción es que lo hagas a través de la sentencia SQL que usas para recuperar los datos, probablemente necesites de una estructura "case".

- La tercera, es como te sugieren en mensajes anteriores, crear una nueva columna (tipo string) a la tabla que contiene el conjunto de datos, a dicha columna le agregas la propiedad Expression = "Iff(tucampo=0, '', tucampo)", te mando el ejemplo:
Código:
SqlDataAdapter da = new SqlDataAdapter(sql,conexion);
DataSet ds = new DataSet();
da.Fill(ds,"Productos");
DataColumn col = new DataColumn();
col.ColumnName = "colsin0";
col.DataType = typeof(string);
col.Expression = "IIf(UnitsInStock=0,'',UnitsInStock)";
ds.Tables["Productos"].Columns.Add(col);
dgDatos.DataSource=ds;
dgDatos.DataBind();
Como ves hay varias opciones, ya depende de ti cuál escoges.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #11 (permalink)  
Antiguo 11/03/2005, 04:35
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
De acuerdo

mil gracias por las respuestas!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:34.