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

Como formatear la salida a una tabla HTML

Estas en el tema de Como formatear la salida a una tabla HTML en el foro de ASP Clásico en Foros del Web. Holas gente, miren tengo el siguiente problema pequeño pero serio ya. Tengo un BD que maneja un sistema de Test en linea, cuando el Admin ...
  #1 (permalink)  
Antiguo 11/01/2003, 04:29
 
Fecha de Ingreso: mayo-2002
Ubicación: Tijuana
Mensajes: 201
Antigüedad: 22 años, 1 mes
Puntos: 1
Como formatear la salida a una tabla HTML

Holas gente, miren tengo el siguiente problema pequeño pero serio ya. Tengo un BD que maneja un sistema de Test en linea, cuando el Admin ingresa un nuevo reactivo este al ingresar a la BD se pasa una pagina de nombre visualizar.asp para que el la vea tal y como la vera el usuario final. Esta dentro del renglon de una tabla, asi <tr><td><%=Enunciado%></td></tr>, ese campo contiene el texto de la pregunta, pero cuando le agrego una expresion grande como 200 caracteres, se habre el renglon de la tabla en todo el largo del browser, no he podido encontrado como formatear la salida decentemente, no quiero usar <p> ya que se pierde la estetica de la expresion y como se supone que es una pregunta no puedo usar campos de texto. Si esto lo hacemos en un editor no hay problema el lo formatea para que un renglon se comporte como varios, pero dinamicamente tengo problemas, si alguien sabe sobre este problemita y pueda echarme la mano se lo agradeceria por el resto de su vida. Y me tatuo su nombre en mi hombro derecho(esto va enserio hee). Ok.
  #2 (permalink)  
Antiguo 11/01/2003, 04:46
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 4 meses
Puntos: 2
Hola paisano, has probado poniendole a tu tabla un ancho predeterminado, por ejemplo ponle 500 a ver que pasa, también puedes ponerle al td un ancho específico así siempre te respetará esa anchura y tu frase de una línea se convertirá en dos o en las que hagan falta, pruebalo a ver si te sirve eso.

Un saludo
  #3 (permalink)  
Antiguo 11/01/2003, 05:23
 
Fecha de Ingreso: mayo-2002
Ubicación: Tijuana
Mensajes: 201
Antigüedad: 22 años, 1 mes
Puntos: 1
Desacuerdo

Ya mira trate de hacer eso jugue con la tabla, pero el problema sigue. Voy a seguir haciendo pruebas a ver como me va, de todos modos muchas gracias he.
  #4 (permalink)  
Antiguo 11/01/2003, 09:29
Avatar de meru-kun  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 854
Antigüedad: 21 años, 6 meses
Puntos: 0
Bueno, prueba con una funcion o algo que corte la cadena y la añada un <br>
Te paso el codigo:
Código:
<%
Function cortarApartir(desde,cadena,caracterCortador)
'esta funcion devuelve la porcion de cadena encontrada
'a partir de la aparicion del caracterCortador
'de la posicion especificada en desde.
dim enc
enc = instr(desde,cadena,caracterCortador)
cortarApartir = mid(cadena,enc + 1)
end Function

Function cortarHasta(desde,cadena,caracterCortador)
'esta funcion devuelve la porcion de cadena encontrada
'hasta el caracter especificado en caracterCortador.
'si el tamaño de la cadena es menor que el
'especificado en desde, entonces, corregir el error.
dim enc
If desde > len(cadena) Then
cortarHasta = cadena
ElseIf desde < len(cadena) Then
enc = instr(desde,cadena,caracterCortador)
cortarHasta = left(cadena,enc - 1)
Else
cortarHasta = cadena
end if
end function

%>
Luego, puedes poner este codigo en tu pagina, tal que asi:
Código:
txtHasta = cortarHasta(1, variable, " ")
txtDesde = cortarApartir(1, variable, " ")
txtFinal = txtHasta & "<br>" & txtDesde
Luego, en vez de pasar el campo del valor, pasas como variable txtFinal
<tr><%= txtFinal %></tr>

Luego vas tu modificando a tu gusto
__________________
Tu portal de manga y anime.
  #5 (permalink)  
Antiguo 12/01/2003, 06:15
 
Fecha de Ingreso: mayo-2002
Ubicación: Tijuana
Mensajes: 201
Antigüedad: 22 años, 1 mes
Puntos: 1
Ya se pudo: Caso resuelto

Bueno despues de haber leido tus ideas meru-kun, y aclarar la situacion, me tome un buen choco-milk con minerales y proteinas. Me sente abri mi tutorial de vbscript y encontre una funciones para manejo de cadenas. Y tu idea me habrio las puertas logre hacerlo, mi codigo quedo asi:
AnchoDeseado = 85
Enun = Request.QueryString("enun")
Enun = NoPreg & ";" & Enun 'Para mostrar numero
TamCad = Len(Enun)
Band = False
NewEnun = ""
Do While TamCad > AnchoDeseado
Band = True
NewEnun = NewEnun & Left(Enun,AnchoDeseado)
NewEnun = NewEnun & VbCr
TamCad = TamCad - AnchoDeseado
Enun = Right(Enun,TamCad)
Loop
If Band = True Then
NewEnun = NewEnun & Enun
Else
NewEnun = Enun
End If
'Despliego donde quiera y que emocion. Muchas gracias a todos por su ayuda. No mas denme poca quebra y apoyare a los que necesitan. Sale.
  #6 (permalink)  
Antiguo 05/12/2003, 20:04
 
Fecha de Ingreso: noviembre-2003
Mensajes: 343
Antigüedad: 20 años, 7 meses
Puntos: 0
Oye me podrias explicar un poco como funciona tu codigo de manejo de cadenas, tengo el mismmo problema ya desde hace tiempo y estoy dessesperado... seria agradable recibir tu ayuda

Gracias.... [email protected]
__________________


La tecnología es un hecho objetivo, y el resultado está sujeto a la voluntad humana.
  #7 (permalink)  
Antiguo 10/12/2003, 10:48
 
Fecha de Ingreso: mayo-2002
Ubicación: Tijuana
Mensajes: 201
Antigüedad: 22 años, 1 mes
Puntos: 1
Disculpa la tardanza, mira eso fuciona asi:

1; Elijes el ancho que deseas para la cadena, por ejemplo 70
letras por renglon, entonces
AnchoDeseado = 70

2;Solicitas la cadena que vas a formatear:
Enun = Request.QueryString("enun")

3;Como mi caso se iba formar el enunciado como pregunta necesitaba agregarle un numero:
Enun = NoPreg & ";" & Enun
Donde: NoPreg lo saco de una base de datos y al final nos debia quedar asi:
"1;Viva Mexico"

4;Saco el tamano de la cadena a formatear y genero una cadena auxiliar vacia
TamCad = Len(Enun) 'Checa lo que hace la funcion Len
NewEnun = ""

5;Pongo mi bandera igual a Falso
Band = False

6;Genero un ciclo que termina cuando mi TamCad a formatear sea menor a AnchoDeseado, si el tamano es menor no entra al ciclo, de lo contrario entra para empezar a romper la cadena en trozo de 70 letras + 1 por renglon.
Do While TamCad > AnchoDeseado

7;Una vez entrando al ciclo mi bandera la igualo a TRUE lo que me indica que la cadena a formatear es mayor a mi ancho deseado y por lo tanto debo romperla.

8;Iniciamos la primera particion por llamarlo asi utilizando una cadena auxiliar llamada NewEnun
NewEnun = NewEnun & Left(Enun,AnchoDeseado)
A esa nueva cadena le agrego un retorno de carro VbCr para cuando yo la despligue en la pagina se produzca el retorno e inicie en otro renglon este es el truco principal, checalo heee
NewEnun = NewEnun & VbCr

9;Ahora vamos a disminuir el TamCad ya que le acabamos de quitar un ancho deseado
TamCad = TamCad - AnchoDeseado

10; Ahora sacamos la cadena restante, vamos a sacar la cadena del lado derecho ya que los primeros 70 caracteres fueron de la izquierda por eso sacamos los caracteres de la derecha
Enun = Right(Enun,TamCad) 'Checa que hace esta funcion

11; Inicamos el ciclo con la cadena nueva
Loop

12; Una vez que sale del ciclo checamos la bandera, esta bandera solo sirve para saber si el enunciado a romper es mayor al ancho deseado:
Si Bandera es True me indica que la cadena era mayor por lo tanto si salio del ciclo posiblemente le quedo alguna cadena menor al ancho deseado y solo la agregamos a la cadena
NewEnun = NewEnun & Enun
Si No nos indica que le cadena es menor y solo le asignamos a la cadena nueva la original
NewEnun = Enun

Donde NewEnun va a ser la cadena nueva a desplegar, podemos tener quede asi:

"Hola Me Llamo Pedro Moreno y Vivo en Tijuana Baja Califo VbCr"
"rnia Mexico."

o Nomas asi:
"Hola Me Llamo Pedro Moreno"

El ultimo caso no utilizo un VbCr ya que la cadena es menor a lo deseado y por lo tanto se desplegara sin problemas. Yo le agrege numero a la cadena pero eso es por mi situacion, eso ya dende de tu problema.

Cuando el navegador le despligue el reconocera los Saltos de Linea no te preocupes.

Bueno espero te quede claro pero hazle una corridas para que le entendas mejor y lo puedas adaptar a tu problema, suerte y animo. Ha si te queda alguna duda ya sabes que por aqui andamos.
  #8 (permalink)  
Antiguo 11/12/2003, 11:04
 
Fecha de Ingreso: noviembre-2003
Mensajes: 343
Antigüedad: 20 años, 7 meses
Puntos: 0
Oye muchisimas Gracias, Te agradesco, muchisimo, lo voy a leer,
cuidadosamente y si no le entiendo te aviso pero no preocupes..

no estoy tan menso,, jajaja.. GRACIAS....
__________________


La tecnología es un hecho objetivo, y el resultado está sujeto a la voluntad humana.
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 12:14.