2012-04-24 8 views
3

openerp6.0のrmlテンプレートで単語を折り返す方法はありませんか?スペースのない長い名前のopenerp.Butという販売注文テンプレートの製品名を取得するために列の幅を定義しました。それがrmlテンプレートレポートの列を単に横切って追加されます。誰でもこの問題の解決策を提案できますか?単語の折り返しがOpenerpの.rmlレポート

答えて

3

これは箱からはサポートされていないと思います。表示するオブジェクトにいくつかのメソッドを追加することをお勧めします。このメソッドは、指定された列の長さに値をラップします(注意してください。比例フォントを使用すると非常に扱いにくくなります。

Python標準ライブラリのtextwrapモジュールは、これらのメソッドの記述に使用できます。

+0

rml自体にワードラップする機能はありますか? –

+0

私はちょうど例:600 cahractersと単一の列に空きなしで長い単語をラップしたい.i hvaeはpythonのためのbreak_long_words関数を見つけたどのように私はrmlのレポートでそれを実装することができますか? –

2

セルの内容をの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> 
+0

これは、製品と一緒に動作します.VeryVeryVeryVeryLongNameAndNoSpacesInsideWhichSupplesNotSplitAsOriginalPosterQueriedAboutについて –

+0

すみません。私は "スペースのない長い名前"の部分を忘れてしまった。とにかく、結果文字列をラップするために、このような関数が現れた後でこれが必要になります。 – yucer

0

私はあなたがこのようparawrapタグを使用することをお勧め:

<parawrap>[[o.name]]</parawrap> 

あなたがオブジェクトの名前を表示する場合は、この例では使用されています。

+0

このタグはエラーを示します。 except_orm:rangeparagraphテキストのうち(u'list指数U」 <parawrap> LSA516.1.220.60.BR.s </parawrap > [[(line.product_id.default_code及び(line.product_id.default_code [0] "0" == \ '2 \')またはline.product_id.nameまたはline.product_id.default_code]] "原因例外"、(、IndexError( '範囲外のテキストのリストインデックスが原因で例外'、)、<トレースバックオブジェクト0xa6589eb4>)) – StackUP

関連する問題