repeatin: как сохранить элементы в одной строке вместо 1 строки на элемент

#python #report #openerp #rml

#python #Сообщить #openerp #rml

Вопрос:

Я создаю отчет openerp, используя преобразование OpenOffice SXW в RML.

Я добавил поле one2many в модель «продукт», которое ссылается на новую модель «композиция», состоящую из текстового поля «имя».

Я использую repeatin для перечисления элементов композиции продуктов «o»:

 [[repeatIn(objects,'o')]]
...
[repeatIn(o.composition,'c')]] [[c.name')]]
...
 

Это работает, но создает новую строку для каждого элемента композиции. Я хочу, чтобы эти элементы отображались в одной строке, а не по одному на строку.

Как я могу этого добиться?

Ответ №1:

я думаю, вы можете использовать 3-й параметр с repeatIn(), указывающий, какой тег вы хотите, чтобы repeatIn создавал для каждого элемента.

По умолчанию это ‘para’ (если я не ошибаюсь), но вы можете установить другой, например, ‘td’. При этом вы можете установить repeatIn() внутри таблицы (с невидимыми строками) с помощью 3-го параметра ‘td’.

Надеюсь, это поможет вам,

С уважением

Ответ №2:

вы можете решить эту проблему, написав пользовательский метод в отчете и возвращая строку, как вы хотите. вы можете вызвать это в отчете, например.

  <para style="P5">
    <font color="black">[[ method_name(o.one2many_fieldName) ]]  </font>
 </para>
 

Надеюсь, это поможет вам!!