Tipo: <p tal:content="tipo" />
Você verá que, tão logo fecha o span que redefine a variável tipo, ela é mandada para o espaço.
Minha sugestão: utilize um script python para reestruturar os resultados do seu zsql, passando de uma forma de registros para outra de uma lista de listas com dicionários. Assim, o que antes era:
tipo|nome|endereco
A|Jose|[EMAIL PROTECTED]
A|Mario|[EMAIL PROTECTED]
B|Fabio|[EMAIL PROTECTED]
B|Chico|[EMAIL PROTECTED]
C|Andre|[EMAIL PROTECTED]
ficaria assim:
[['A',{'nome':'Jose',' endereco':'[EMAIL PROTECTED]'},{'nome':'Mario','endereco':'[EMAIL PROTECTED]'}],
['B',{'nome':'Fabio','endereco':'[EMAIL PROTECTED] '},{'nome':'Chico','endereco':'[EMAIL PROTECTED]'}],
['C',{'nome':'Andre','endereco':'[EMAIL PROTECTED]'}]]
E seu page template ficaria assim:
<span tal:repeat="dados container/sql/GetDados">
<span tal:repeat="item dados">
<span tal:condition="repeat/item/start"> <!-- Executa apenas para o primeiro item da lista -->
<p tal:content="item" />
</span>
<span tal:condition="not: repeat/item/start"> <!-- Executa apenas para os demais -->
<p tal:content="item/nome" />
</span>
</span>
</span>
Não há como evitar totalmente a introdução de alguma lógica em um ZPT (eu pelo menos não consegui ainda), mas o ideal é utilizar o mínimo possível, para não tornar suas páginas difíceis de ler.
Zénrique.
Em 24/02/06, alexpiaz <[EMAIL PROTECTED]> escreveu:
Pessoal,
Tenho uma tabela que retorna os seguintes dados:
tipo|nome|endereco
A|Jose|[EMAIL PROTECTED]
A|Mario|[EMAIL PROTECTED]
B|Fabio|[EMAIL PROTECTED]
B|Chico|[EMAIL PROTECTED]
C|Andre|[EMAIL PROTECTED]
Eu preciso exibir os dados assim em uma page template:
A
Jose
Mario
B
Fabio
Chico
C
Andre
Eu sei a logica de fazer, o pseudo codigo seria assim (exemplo em python)
letra = ''
for linha in tabela:
if linha.tipo != letra:
letra = linha.tipo
print letra
print nome
print email
Bom, eu preciso transpor isso pra ZPT, tentei fazendo assim:
<span tal:define="tipo python:''">
<span tal:repeat="dados container/sql/GetDados">
<span tal:condition="python:tipo != dados.tipo">
<span tal:define="tipo dados/tipo">
<p tal:content="tipo" />
</span>
<p tal:content="dados/nome" />
</span>
Só que não funciona!!!
Ele fica repetindo pra cada linha o tipo...EU sou cru em zpt, talvez
tenha alguma outro macete.
Alguem se habilita a dar uma dica??
[]'s a todos e bom carnaval!!!
Alex
Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html
Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]
Yahoo! Grupos, um serviço oferecido por: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.