Tablas de verdad

Desde que trabajo en y para la web me he topado con innumerables maneras de presentar datos tabulados, donde se maneja gran cantidad de datos y la manera normal de presentarlos es usando una tabla, tal vez por su relación directa por cómo se almacenan en las bases de datos. He construido muchos componentes tabla en lenguajes como javascript, XSL, PHP; y con múltiples funcionalidades como ordenación, filtrado, tipado complejo de datos, edición de los campos, formatos de celdas, columnas fijas, columnas arrastrables, scrolls, paginación, cabeceras anidadas y un largo etc.

Desde el punto de vista informático una tabla es un listado de registros, habitualmente dispuestos en vertical, con una cabecera horizontal sobre los datos que describe cada columna. Por tanto, las celdas de cada columna siempre tienen el mismo tipo de información, mientras que las filas o registros son equivalentes entre sí y pueden existir cualquier número de ellos. Es en estos casos cuando se puede usar un componente para generar una tabla, capaz de obtener un número indeterminado de registros y presentarlo en pantalla, además de tener funcionalidades como las descritas anteriormente. Ejemplos de datos tabulados son los movimientos de una cuenta bancaria, los vuelos disponibles, agenda de contactos, etc. Notad que la disposición normal en web es con la cabecera en la primera fila y los registros crecienco en vertical, pero podría darse de igual manera en horizontal.

Ejemplo de tabla

Para otras presentaciones de datos no tabulares (informáticamente hablando) se puede usar una tabla para facilitar su legibilidad, pero es méramente una ayuda al usuario. Un uso habitual es el de presentar formularios, donde se tienen campos nombre-valor, por ejemplo al presentar los datos de un único usuario. Creo que se debería evitar este uso de las tablas y, en el caso de que sea necesario, distinguirlas gráficamente de las que son realmente tablas.

En casos más complicados la cantidad de datos que ha de manejar una tabla hace inviable que se puedan presentar todos de una vez en la pantalla, por lo que hay que recurrir a soluciones como el filtrado o la paginación de los mismos. En el artículo “Refining Data Tables” de Luke Wroblewski recopila diferentes soluciones de diseño a dichos problemas.

haXe: lenguaje universal orientado a web

Apollo: el cliente universal

XHTMLized: factorización de XHTML