Una tabla super super dinámica para una matriz bidimensional 38x7 :) ?

29 views
Skip to first unread message

Kenneth Burgos Nivar

unread,
Oct 31, 2012, 4:11:27 PM10/31/12
to play-...@googlegroups.com
Muchos saludos queridos colegas,

Es raro pedir ayuda ya que por lo general siempre suelo peinar la web o algún libro para encontrar una solución a mis problemas pero en este caso tengo una situación a la cual le he dado mil vueltas y ya no tengo mi mente clara en como solucionarlo, en fin agradecería cualquier recomendación o idea.

Expongo:

Se trata de una matriz bidimensional de 38 filas / 7 columnas por ejemplo:

1ra 2da 3ra 4ta 5ta 6ta Bono
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
4 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 6
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 11 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 16 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 28 28 0 0
0 0 0 0 29 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 32 0 0
0 0 0 0 0 0 0
0 0 0 0 34 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 38 0

Lo que me gustaría lograr con dicha matriz es conseguir ya sea por medio del motor template de play framework eliminar todos los 0 y que los números por debajo se acoplen en su misma columna para que queden de la siguiente forma:

1ra     2da     3ra     4ta     5ta     6ta     Bono
4        11        16     28      28      38       6
                                       29   
                                       32       
                                       34       

He tratado de hacerlo con esto:
<table class="table table-bordered">
    <thead>
        <tr>
            <th>1ra</th>
            <th>2da</th>
            <th>3ra</th>
            <th>4ta</th>
            <th>5ta</th>
            <th>6ta</th>
            <th>Bono</th>
        </tr>
    </thead>
    <tbody>
        #{list items:1..38, as:'fila'}
            #{list items:1..7, as:'col'}
                    #{if col == 1} <tr> #{/if}
                    #{if matriz[fila][col] == 0}
                        <td style="visibility:hidden;">
                    #{/if}
                    #{else}
                        <td>
                    #{/else}
                        ${matriz[fila][col]}
                        </td>
                    #{if col == 7} </tr> #{/if}
            #{/list}
        #{/list}
    </tbody>
</table>

y he estado muy cerca pero las celdas a 0 con se contraen sino que quedan los espacios hueco.
Agradeceria cualquier comentario, gracias.

Atte,

Kenneth S. Burgos

Adrian Perreau de Pinninck

unread,
Oct 31, 2012, 4:24:34 PM10/31/12
to play-...@googlegroups.com
Dos cosas:

1) el <tr> puede ir fuera del bucle interior asi te ahorras los if row == 0 y row == 7
2) reamente necesitas que cada número esté en su propia celda? de no ser así puedes hacer una tabla de dos filas y usar <br>

Quedaría algo así:

<tbody>
  <tr>

    #{list items:1..7, as:'col'}   
    <td>

      #{list items:1..38, as:'fila'}
        #{if matriz[fila][col] != 0}
          ${matriz[fila][col]} <br>
        #{/if}
      #{/list}
    </td>
  </tr>
</tbody>


2012/10/31 Kenneth Burgos Nivar <kenneth...@gmail.com>



--
Adrián Perreau de Pinninck Bas, Ph.D
Twitter: @eidrien

Kenneth Burgos Nivar

unread,
Oct 31, 2012, 4:38:05 PM10/31/12
to play-...@googlegroups.com
Señor Adrian, me arrodillo ante usted, no se imagina usted cuan agradecido estoy con usted,

Lo que usted me ha sugerido funcionó a la perfeccion, solo le falto un #{/list} despues del </td>, el cual agregué y funcionó dandome el resultado esperado.

Cualquier cosa mi facebook es http://www.facebook.com/kenneth.burgos.3 para conocerle, tiene un amigo si viene a Republica Dominicana.

Gracias, gracias, gracias. :)

Adrian Perreau de Pinninck

unread,
Oct 31, 2012, 4:41:48 PM10/31/12
to play-...@googlegroups.com
No hay de que. Ha sido un placer serte de ayuda.
Reply all
Reply to author
Forward
0 new messages