1

テーブルは次のようにする必要があります。2行あるとします。最初の行には6つの列があり、2番目の行には2つの列があります(ただし、行全体の長さはもちろん同じです)。これが必要なのは、製品の説明を下に置く必要があり、残りの列よりも多くのスペースが必要なためです。したがって、グラフィカルには次のようになります。

1col|2col|3col|4col|5col|6col|
1col     |2col                |

このテーブルを作成するために、レポートマークアップ言語が使用されています。

これで、このテーブルは次のようになります。

<para style="terp_default_1">[[repeatIn(o.order_line,'line')]]</para>
      <blockTable colWidths="180.0,70.0,80.0,70.0,50.0,85.0" style="Table5">
        <tr>
          <td>
            <para style="terp_default_9">[[ line.name ]] </para>
          </td>
          <td>
            <para style="terp_default_Centre_9">[[ ', '.join(map(lambda x: x.name, line.tax_id)) ]]</para>
          </td>
          <td>
            <para style="terp_default_Right_9">[[ formatLang(line.product_uos and line.product_uos_qty or line.product_uom_qty) ]] [[ line.product_uos and line.product_uos.name or line.product_uom.name ]]$
          </td>
          <td>
            <para style="terp_default_Right_9">[[ formatLang(line.price_unit) ]]</para>
          </td>
          <td>
            <para style="terp_default_Centre_9">[[ formatLang(line.discount, digits=get_digits(dp='Sale Price')) ]]</para>
          </td>
          <td>
            <para style="terp_default_Right_9">[[ formatLang(line.price_subtotal, digits=get_digits(dp='Sale Price')) ]] [[ o.pricelist_id.currency_id.symbol ]]</para>
          </td>
        </tr>
        <tr>
          <td>
            <para style="terp_default_9">[[ line.product_id.product_tmpl_id.description ]]</para>
          </td>
        </tr>
</blockTable>

特定の行(trタグ)を定義して特定の列数にする方法があるはずです。現在のように、列の長さと数は「blockTable」タグで定義されています。または、1と2を1つの列に結合し、3、4、5と6の列を2番目に結合するのが最善の方法です。

更新:おそらくrmlと同様のアプローチであるため、htmlタグを追加しました。

4

1 に答える 1

4

私はこれを例として使用してこの問題を解決することができました: reportlab:rmlでのtdのcolspanの設定

私はで指定する必要がありました:

<blockTableStyle><blockSpan start="1,1" stop="4,1"/></blockTableStyle>

つまり、2番目の列から最後の列までの2番目の行が1つに結合されます。

于 2013-01-07T10:06:29.993 に答える