RML - строки таблицы с разным количеством и длиной столбцов

Мне нужно, чтобы моя таблица была такой: допустим, в ней две строки. В первой строке шесть столбцов, а во второй строке — два столбца (но, конечно, целые строки имеют одинаковую длину). Мне это нужно, потому что мне нужно поместить описание продукта ниже, и ему нужно больше места, чем остальным столбцам. Графически это будет выглядеть так:

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 в один столбец 3,4,5 и 6 столбец во второй.

Обновление: я добавил тег html, потому что, возможно, это тот же подход, что и в rml.


person Andrius    schedule 07.01.2013    source источник
comment
Вы можете использовать 2 таблицы. 1-я таблица для заголовка таблицы и 2-я таблица для печати записей.   -  person Sudhir Arya    schedule 07.01.2013
comment
Я знаю это. С заголовками все в порядке. Все эти столбцы не являются частью заголовков. Я привел пример с 2-мя рядами, но, возможно, я должен был упомянуть, что эти ряды нужно повторять друг за другом, в зависимости от номера продукта. Вот почему вы не можете использовать разные таблицы, потому что сначала будет выведена вся таблица, затем другая, но не объединенная, как должно быть.   -  person Andrius    schedule 07.01.2013


Ответы (1)


Мне удалось решить эту проблему, используя это в качестве примера: reportlab: установка colspan для td в RML

Мне нужно было указать в:

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

Это означает, что вторая строка, начиная со второго столбца до последнего, будет объединена в одну.

person Andrius    schedule 07.01.2013