Есть ли способ обернуть слова в шаблоне rml в openerp6.0. Я определил ширину столбца, чтобы получить название продукта в шаблоне заказа на продажу openerp. Но когда добавляются длинные имена без пробела, он просто пересекает столбец в шаблоне rml. отчет один. Может ли кто-нибудь предложить решение этой проблемы.
Перенос слов в отчетах .rml в Openerp
Ответы (3)
Я не думаю, что это поддерживается из коробки. Я предлагаю вам добавить некоторые методы к объектам, которые вы хотите отобразить, которые будут предоставлять значения, привязанные к заданной длине столбца (осторожно, это становится очень сложно, если вы используете пропорциональный шрифт, для этого лучше придерживаться фиксированной ширины).
Модуль textwrap стандартной библиотеки Python может быть полезен при написании этих методов.
person
gurney alex
schedule
24.04.2012
есть ли функция переноса слов в самом rml?
- person Pravitha V; 25.04.2012
я просто хочу обернуть длинное слово, например: 600 символов без пробела в один столбец. Я нашел функцию break_long_words для python, как я могу реализовать ее в своих отчетах rml?
- person Pravitha V; 11.05.2012
Просто заключите содержимое ячейки в тег para. Вот пример:
<!DOCTYPE document SYSTEM "rml.dtd" >
<document filename="wraps.pdf">
<template showBoundary="0">
<pageTemplate id="main">
<pageGraphics />
<frame id="first" x1="150" y1="400" width="250" height="400" />
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="blocktablestyle4">
<!-- show a grid: this also comes in handy for debugging your tables.-->
<lineStyle kind="GRID" colorName="green" thickness="1" start="0,0" stop="-1,-1" />
</blockTableStyle>
<paraStyle name="textstyle1" fontName="Helvetica" fontSize="9" textColor="blue" />
</stylesheet>
<story>
<blockTable style="blocktablestyle4" colWidths="2cm,2cm">
<tr>
<td>cell A</td>
<td>This doesn't wraps.</td>
</tr>
<tr>
<td>cell C</td>
<td>
<para style="textstyle1">to see how it works. This is yet more long text to demonstrate wrapping through "para" tag.</para>
</td>
</tr>
</blockTable>
</story>
</document>
person
yucer
schedule
25.04.2012
это работает с продуктомWithAVeryVeryVeryLongNameAndNoSpacesInsideWhichIsUsuallyNotSplitAsTheOriginalPosterQueriedAbout?
- person gurney alex; 26.04.2012
Мне жаль. Я забыл длинные имена без пробела. В любом случае это понадобится после появления такой функции, чтобы обернуть результирующую строку.
- person yucer; 21.05.2012
Я предлагаю вам использовать тег parawrap следующим образом:
<parawrap>[[o.name]]</parawrap>
Этот пример используется, когда вы отображаете имя объекта.
person
Blankoworld
schedule
13.05.2014
Этот тег выдает ошибку. exclude_orm: (u'список index out of rangeparagraph text u‹para›parawrapLSA516.1.220.60.BR.s/parawrap‹parawrap›[[ (line.product_id.default_code and (line.product_id.default_code[0] == \ '1\' или line.product_id.default_code[0] == \'2\')) и line.product_id.name или line.product_id.default_code ]]‹/parawrap›‹/font›‹/para› вызвали исключение ', (‹type 'exceptions.IndexError'›, IndexError('индекс списка вне диапазона текста абзаца вызвал исключение',), ‹объект трассировки по адресу 0xa6589eb4›))
- person StackUP; 02.04.2015