Foros del Web » Programando para Internet » ASP Clásico »

evitar mostrar campos vacíos

Estas en el tema de evitar mostrar campos vacíos en el foro de ASP Clásico en Foros del Web. Hola, A ver si alguien me puede ayudar. Estoy haciendo una página en la cual tengo que mostrar los resultados de un registro, hasta aquí ...
  #1 (permalink)  
Antiguo 28/10/2010, 03:59
 
Fecha de Ingreso: mayo-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
evitar mostrar campos vacíos

Hola,
A ver si alguien me puede ayudar.
Estoy haciendo una página en la cual tengo que mostrar los resultados de un registro, hasta aquí todo bien, aparecen todos los campos. En ese registro hay datos en blanco, cómo puedo hacer para que no aparezcan?
En el ejemplo he dado de alta un artículo, tiene varios colores, y sólo quiero que me muestre los colores que he rellenado.
Gracias por todo.
  #2 (permalink)  
Antiguo 28/10/2010, 08:22
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: evitar mostrar campos vacíos

Cómo lo estas mostrando?

Si diferentes registros tienen llenos diferentes campos y debes mostrarlos en columna, debes entonces mostrarlos todos

más datos, se necesitan más datos (y algo de código)
  #3 (permalink)  
Antiguo 28/10/2010, 08:57
 
Fecha de Ingreso: mayo-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: evitar mostrar campos vacíos

El código que he puesto es este:



Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\base\bd\base.mdb")
strSQL = "Select * from DATOS where CODIGOART = " & Request.QueryString("codigoart")
Set RS = Conn.Execute(strSQL)
Response.Write "<BR><BR>" & vbCrLf
Response.Write("<TABLE width=""880"" border=""1"" >")
while not rs.EOF

Response.Write("<TR>")
Response.Write("<TD ">Artículo: "& rs.Fields("descripcion") & "</TD>")
Response.Write("</TR>")
Response.Write("<TR>")
Response.Write("<TD >Observ.:" & rs.Fields("observaciones") & "</TD>")
Response.Write("</TR>")
Response.Write("</TABLE>")

Response.Write("<TABLE width=""880"" border=""1"" >")
Response.Write("<TR>")
Response.Write("<TD colspan=""3"" align=""center""><img src='" & rs.Fields("FOTO") & "'><br><br></TD>")
Response.Write("</TR>")
Response.Write("</TABLE>")

Response.Write("<TABLE width=""600"" border=""0"" align=""left"">")

Response.Write("<TR>")
Response.Write("<TD colspan=""1"" class=""menutop-9"">COLORES DISPONIBLES:</TD>")
Response.Write("</TR>")

Response.Write("<TR>")
if not IsEmpty(rs("NEGRO_01")) Then
Response.Write("<TD colspan=""5"" class=""menutop-10"" >" & rs.Fields("NEGRO_01")&"</TD>")
else
aquí no sé qué poner para que no se muestre el dato si el campo negro está vacío end if
if not IsEmpty(rs("AMARILLO_22")) Then
Response.Write("<TD colspan=""5"" class=""menutop-10"">" & rs.Fields("AMARILLO_22")&"</TD>")
else
………………………………………..
end if
.
.
.
.
  #4 (permalink)  
Antiguo 28/10/2010, 09:29
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: evitar mostrar campos vacíos

No pongas nada

Quita ese ELSE

Lo único que tendrás que hacer es quitar ese renglón donde pones "COLORES DISPONIBLES" por que no sabes cuántas columnas tendrás, o puedes dejarlo y contar cuantos campos si dibujaste pero luego con javascript tendras que modificar el colspan de ese renglón, es un pelo más complicado, mejor coloca ese texto como un simple párrafo y no como parte de la tabla.

saludos
  #5 (permalink)  
Antiguo 28/10/2010, 09:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: evitar mostrar campos vacíos

Sí, así funciona bien. El problema es que me gustaría representarlo en una tabla porque luego quiero que se pueda introducir en un campo de texto la cantidad de cada color.

De todas formas gracias por la respuesta. Supongo que me queda un largo camino con asp....
  #6 (permalink)  
Antiguo 28/10/2010, 12:03
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: evitar mostrar campos vacíos

Lo vas a dejar en una tabla, solo sacarías de ella el encabezado, por que el colspan debe tener antes de que pintes las columnas el número de columnas que va a abarcar, por eso te decía que era el único elemento que te estorba.

Si, te queda un largo camino en la programación, pero no te preocupes, así empezamos todos y como todo, es cosa de práctica.

Saludos
  #7 (permalink)  
Antiguo 28/10/2010, 13:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: evitar mostrar campos vacíos

Myakire, perdona mi cabezonería....

No hay una forma de decirle a la página..... si el campo no está vacío, genera una celda, si está vacío no hagas nada.... fácil así, pero mis conocimientos son limitados ahora....

Un saludo... y gracias por responder
  #8 (permalink)  
Antiguo 28/10/2010, 16:12
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: evitar mostrar campos vacíos

Cita:
No hay una forma de decirle a la página..... si el campo no está vacío, genera una celda, si está vacío no hagas nada.... fácil así
Claro

if not IsEmpty(rs("NEGRO_01")) Then '<-SI EL CAMPO NO ESTA VACIO
Response.Write("<TD colspan=""5"" class=""menutop-10"" >" & rs.Fields("NEGRO_01")&"</TD>") '<- GENERA UNA CELDA
end if

Y ya ...

Si no colocas el ELSE le estas diciendo: SI ESTA VACIO, NO HAGAS NADA.

capichi?


Edito:

Quizá quieres en realidad que si esta vacio genere una celda vacía, si es así sería con: Response.Write("<TD class=""menutop-10"" >&nbsp;")
  #9 (permalink)  
Antiguo 29/10/2010, 03:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 29
Antigüedad: 15 años
Puntos: 0
Respuesta: evitar mostrar campos vacíos

bueno, lo voy a probar... Gracias gracias.

Etiquetas: campos
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 17:15.