Tabulação horizontal e vertical
25/11/2009 00:00
0
Bom dia

Necessito criar uma pagina onde mostro os dados de uma tabela começando da esquerda para direita e de cima para baixo, na verdade já tenho essa pagina funcionando em struts 1.x, o problema é que no struts uso for e consigo navegar na lista trazida do banco com res_cadmesa++ mas com a tag each eu não consigo ir para o próximo registo, como fazer isso ? Segue abaixo o código do domain, controller e view:

domain:
/**
* The Cadmesa entity.
*
* @author Mariolando A. Santos Infocast Sistemas
*
*
*/
class Cadmesa {
static mapping = {
table 'cadmesa'
// version is set to false, because this isn't available by default for legacy databases
version false
id generator:'identity', column:'MESA_ID'
}
Integer mesaId
Integer mesaNum
String mesaOpen
// Relation
Integer mesaLoja

static constraints = {
mesaId(max: 2147483647)
mesaNum(nullable: true, max: 2147483647)
mesaOpen(size: 0..2)
mesaLoja()
}
String toString() {
return "${mesaId}"
}
}

controller:
class MesasController {

def index = { redirect(action:list,params:params) }

// the delete, save and update actions only accept POST requests
//static allowedMethods = [delete:'POST', save:'POST', update:'POST']

def list = {
[ cadmesaInstanceList: Cadmesa.findAll("from Cadmesa as c where c.mesaLoja=? order by c.mesaNum",[2]) ]
}

}

view:
<html>
<head>
<title>Welcome to Grails</title>

<link href=&quot;/webtouch/css/style_salao.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/>
<bean:message key=&quot;page.script&quot;/>
<script type=&quot;text/javascript&quot;>
function right(e) {
if (navigator.appName == 'Netscape' &amp;&amp; (e.which == 3 || e.which == 2))
return false;
else if (navigator.appName == 'Microsoft Internet Explorer' &amp;&amp; (event.button == 2 || event.button == 3)) {
alert(&quot;Permiss�o negada.&quot;);
return false;
}
return true;
}
document.onmousedown=right;
document.onmouseup=right;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
if (document.layers) window.captureEvents(Event.MOUSEUP);
window.onmousedown=right;
window.onmouseup=right;
</script>
</head>
<body>
<table align=&quot;CENTER&quot; class=&quot;mainTable&quot; style='width:780px;'>
<tr class=&quot;mainTr&quot;>
<td class=&quot;mainTd&quot;>
<table class=&quot;headerTable&quot; style=&quot;width:780px&quot; >
<tr>

<td class=&quot;td10&quot;>
<%
session.setAttribute(&quot;mesa_open&quot;,&quot;&quot;);

session.setAttribute(&quot;comanda&quot;,&quot;&quot;);

session.setAttribute(&quot;garcom&quot;,&quot;&quot;);

session.setAttribute(&quot;mesa_id&quot;,&quot;&quot;);

session.setAttribute(&quot;cadven_id&quot;,null);

session.setAttribute(&quot;res_Cadven&quot;,null);

session.setAttribute(&quot;res_Cadmov&quot;,null);

session.setAttribute(&quot;res_Cadmov1&quot;,null);

session.setAttribute(&quot;res_Cadbai&quot;,null);

session.setAttribute(&quot;res_Cadlog&quot;,null);

session.setAttribute(&quot;res_Cadcli&quot;,null);

session.setAttribute(&quot;res_Cadtel&quot;,null);

session.setAttribute(&quot;res_Cadconf&quot;,null);

session.setAttribute(&quot;exception&quot;,null);
%>

<bean:message key=&quot;page.title&quot;/>
</td>
<td>
<div class='div10'>
<jsp:useBean id=&quot;now&quot; class=&quot;java.util.Date&quot; />
<fmt:formatDate pattern=&quot;dd/MM/yyyy hh:mm:ss&quot; value=&quot;${now}&quot; />
</div>
</td>

</tr>

</table>

<jsp:forward page=&quot;/system/ErrorPage.jsp&quot;/>
<form name=&quot;bl_report_Cadmesa&quot; id=&quot;bl_report_Cadmesa&quot; class=&quot;baseForm&quot; method=&quot;post&quot; >
<table class=&quot;bannerTable&quot; style=&quot;width:640;&quot;>
<tr class=&quot;bannerTr&quot;>
<td class=&quot;bannerTd&quot;>
Venda em Loja
</td>
</tr>
</table>


<table id=&quot;TRbl_report_Cadmesa&quot; style=&quot;width:100%;height:500&quot; border=&quot;1&quot; align=&quot;center&quot; cellpadding=&quot;1&quot; cellspacing=&quot;0&quot;>
<g:each in=&quot;${cadmesaInstanceList}&quot; status=&quot;i&quot; var=&quot;cadmesaInstance&quot;>
<tr class='<%= style_bl_report_Cadmesa %>' id=&quot;TRbl_report_Cadmesa<%=i_bl_report_Cadmesa%>&quot; >
<g:each var=&quot;g&quot; in=&quot;${ (0..<10) }&quot;>
<td align=&quot;center&quot; valign=&quot;middle&quot; bgcolor=<% if(mesa_open.equals(&quot;1&quot;))out.print(&quot;#FF0000&quot;);else if(mesa_open.equals(&quot;2&quot;))out.print(&quot;#FFFF00&quot;);else out.print(&quot;#00FF00&quot;);%> style=&quot;font-size: large&quot;>
<a href=&quot;http://localhost:8080/webtouch/mesas/mesa?mesa_fone=${fieldValue(bean:cadmesaInstance, field:'mesaNum')}&amp;mesa_id=${fieldValue(bean:cadmesaInstance, field:'mesaId')}&amp;mesa_open=${fieldValue(bean:cadmesaInstance, field:'mesaOpen')}&amp;loja=${fieldValue(bean:cadmesaInstance, field:'mesaLoja')}&quot;>
<strong>
${fieldValue(bean:cadmesaInstance, field:'mesaNum')}
</strong>
</a>
</td>
</g:each>
</tr>
</g:each>
</table>

<table class=&quot;footerTable&quot;>
<tr class=&quot;footerTr&quot;>
<td class=&quot;footerTd&quot;>
<bean:message key=&quot;div.print&quot;/>
</td>
</tr>

</table>



</table>

</body>
</center>
</html>
Tags: Grails


0
Proteus, boa noite.

Você pode iterar usando o &quot;g:each&quot; da seguinte maneira:


<table>
<tr>
<g&#58;each in=&quot;${cadmesaInstance}&quot; status=&quot;i&quot; var=&quot;mesa&quot;>
<td align=&quot;center&quot; valign=&quot;middle&quot; style=&quot;font-size&#58; large&quot;>
<a href=&quot;http&#58;//servidor/link/...&quot;>${fieldValue(bean&#58;'mesa', field&#58;'nome')}</a>
</td>
<g&#58;if test=&quot;${i%10==0 &amp;&amp; i>0}&quot;>
</tr>${i}
<tr>
</g&#58;if>
</g&#58;each>
</table>


A cada 10 registros ele abre uma nova linha pra você. Acho que devem haver soluções mais elegantes mas foi a que consegui pensar na correria aqui. <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->

Espero ter ajudado. Abraço!
18/12/2009 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto