Ok Luiz, obrigado pela idéia!

Crie um método externo chamado preco_br, aproveitando um código que vi
na intenernet

def preco_br(self, amount, thousand_sep='.', decimal_sep=',',
symbol=''):
 num = '%.2f'%amount
 left, right = num.split('.')
 left_digits = list(left)
 spaced_digits = [decimal_sep, right, symbol ]
 while left_digits:
       spaced_digits = [thousand_sep] + left_digits[-3:] + spaced_digits
       del left_digits[-3:]
 return ''.join(spaced_digits[1:])



Após criar o external method no plone, chamei a função da seguinte
forma:
Valor R$ <span
tal:replace="python:here.preco_br(result.valor)">Preço</span>

Deu certo!

Obrigado!

Ronaldo Richieri
[EMAIL PROTECTED]


Em Sex, 2005-11-11 às 13:08 -0200, Luiz Fernando Pasqual S. Souza
escreveu:
> On Fri, Nov 11, 2005 at 01:20:05PM -0000, Ronaldo Richieri wrote:
> > Estou fazendo uma pesquisa com um zsql no meu banco de dados mssql
> > server. O meu zope está no linux e estou fazendo a ligação com o Ms
> > Sql Server com o FreeTDS. 
> > Até aí tudo bem, o problema é que estou trazendo um preço de produto
> > da seguinte forma:
> > 
> >  Valor R$ <span tal:replace="result/valor">Preço</span>
> > 
> > e o zope gera o seguinte:
> >  Valor R$ 456.2
> > 
> > ou
> >  Valor R$ 321.65
> > 
> > Gostaria de saber como fazer para formatar estes números para ficar
> no
> > formato aqui do Brasil, ou seja, colocar virgula como separador
> > decimal e ponto como separador de milhar. E quando o número não
> tiver
> > décimos, quero completar com zeros, por exemplo R$ 450,00.
> > 
> > Alguém poderia me ajudar?
> > 
> > 
> 
> Bom, sinceramente não sei se o Zope tem alguma função para fazer isso
> de
> forma automatica, mas podemos recorrer ao python :)
> 
> Faça um external method, para converter os valores:
> 
> >>> import locale
> >>> locale.setlocale(locale.LC_ALL,('pt_BR','ascii'))
> 'pt_BR.ISO8859-1'
> >>> locale.format('%.2f', 12451.54, True)
> '12.451,54'
> 
> Sacou?
> 
> > 
> > 
> > 
> > 
> 
> -- 
> <about>
> <name>Luiz Fernando Pasqual S. Souza</name>
> <email>pasquall at terra dot com dot br</email>
> <icq>59929504</icq>
> </about>
> 
> 
> 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:
>                                             PUBLICIDADE
>                                    
> 
> 
> ______________________________________________________________________
> 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!.
> 



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

 


Responder a