Re: [zope-pt] Extração de Relatório

2007-12-05 Por tôpico José Henrique
Em 04/12/07, Diogo <[EMAIL PROTECTED]> escreveu:
>
> É uma solução bem bacana mesmo. Obrigado.
>
> Abusando um pouco. Existiria como fazer esse resultado ser exportado para
> um arquivo (CSV,TXT,qualquer outro), com um botão, comando,  link, sinal de
> fumaça, sei lá...
>
> Obrigado.
> 
>

Diogo,

Você pode gerar um objeto semelhante a um arquivo texto no ZODB usando a API
do Zope (veja o método manage_addFile).  Para fazer o download desse
arquivo, você poderia criar uma página que o exibisse.  Entretanto, o
usuário teria que salvá-lo em disco, usando o menu do navegador
(Arquivo/Salvar como...).

Zénrique.


Re: [zope-pt] Extração de Relatório

2007-12-04 Por tôpico José Henrique
Em 04/12/07, Diogo Araujo <[EMAIL PROTECTED]> escreveu:
>
> Boa tarde a todos.
>
> Eu dei uma breve/longa procurada no google e não achei muito específico a
> respeito.
>
> Existe alguma maneira de fazer extração de dados de um "Z SQL Method" para
> um arquivo CSV por exemplo, ao invês de só exibir o template.
>
> Obrigado.
>
>
> Diogo Araujo
> Analista de Novas Tecnologias
> Conductor Tecnologia S.A.
> (11) 3889-1878
> 
>

Diogo,

Utilizando o método tuples do Zsql method você obtém um resultado bastante
próximo do que você quer.  Um exemplo:

results = context.metodo_zsql(var1 = request.var1, var2 = request.var2
).tuples()

resultaria em algo assim:

[(1, 'Banco do Brasil S.A. ', 'BB', '001'), (2, 'Banco da Amazonia S.A. ',
None, '003')]

Como você pode ver, cada item da lista é uma tupla.  Uma maneira simples de
eliminar os parênteses da tupla seria:

for item in results:
print str(item)[1:-1]

Assim teríamos:

1, 'Banco do Brasil S.A. ', 'BB', '001'
2, 'Banco da Amazonia S.A. ', None, '003'

Isso é apenas uma sugestão, pois usando um script python você pode extrair
os resultados do Zsql method e formatá-los da maneira que quiser.

Zénrique.