Quebra de linha quando há espaço entre palavras

202 views
Skip to first unread message

KaLíFoR

unread,
Jun 29, 2010, 10:13:00 PM6/29/10
to geraldo-pt
Boa noite. Estou tentando gerar um relatório utilizando o geraldo,
através do django. O meu relatório possui 3 atributos: nome, telefone
e email, porém, quando o "nome" possui espaço entre as palavras, há
uma quebra de linha no mesmo. Como faço para que não ocorra essa
quebra de linha?

Obs.: Excelente o Geraldo!

Obrigado.

Marinho Brandao

unread,
Jul 5, 2010, 7:12:51 AM7/5/10
to geral...@googlegroups.com
Oi Diogo,

já lhe respondi seu e-mail mas vou responder aqui para o histórico ficar para outros:

pode ser porque a largura (width) do ObjectValue está curta, mas caso ela já esteja ok, você pode usar o atributo trocate_overflow pra tuncar o campo e evitar que ele faça o salto de linha, assim por exemplo:

<code>
ObjectValue(expression='nome', width=4*cm, truncate_overflow=True)
</code>

----
Marinho Brandão (José Mário)
http://www.marinhobrandao.com/

KaLíFoR

unread,
Jul 5, 2010, 10:32:38 AM7/5/10
to geraldo-pt
Deu certo Marinho, obrigado!

Edivano Mittelstad

unread,
Aug 6, 2010, 8:02:28 AM8/6/10
to geraldo-pt
Bom dia,

O meu caso é semelhante, mas não igual. Eu salvo no meu Banco de Dados
um código html no qual utiliza as tags <p>Texto salvo no banco de
dados aqui.</p> para iniciar e terminar um parágrafo. Mas Está
aparecendo tudo junto.

linha abaixo:
ObjectValue(attribute_name="texto".replace("<p>","<br/
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"),
top=200, left=2*cm, width=16*cm, style={'alignment': TA_JUSTIFY},
display_format="%s"),

O .replace(*****) ele está ignorando. Acho que o display_format tb não
é necessário para este objeto.

Edivano Mittelstädt

Marinho Brandao

unread,
Aug 24, 2010, 8:48:02 AM8/24/10
to geral...@googlegroups.com
Olá Edivano,

quando você informa o attribute_name e atribui a ele uma string, com o nome do atributo, o "replace" não se enquadra, pois o replace deve ser aplicado a cada valor de tal atributo, e não ao seu nome.

portanto o correto seria fazer algo como:

ObjectValue(


top=200, left=2*cm, width=16*cm, style={'alignment': TA_JUSTIFY},

get_value=lambda self, objeto: objeto.texto.replace().replace().etc...,
)

Veja que o get_value é uma função (lambda) que recebe o self (ObjectValue) e o objeto em questão (porque uma lista de 100 objetos vai rodar esse widget 100 vezes, uma para cada objeto)

Neste caso, o attribute_name é desnecessário. O display_format também.

Espero que tenha ajudado

----

Reply all
Reply to author
Forward
0 new messages