Динамическая генерация отчета с использованием RML в OpenERP

Как создать динамические столбцы с помощью отчета RML?


person Abhishek Mehta    schedule 15.05.2012    source источник
comment
@AnomA Это похоже на таблицу, предположим, я выбираю месяц, и это январь, поэтому отображается 31 столбец, или его февраль, поэтому отображается 28 столбцов .. !!   -  person Abhishek Mehta    schedule 16.05.2012


Ответы (1)


Прочтите документацию для разработчиков на динамическом содержание в отчетах. Вы можете использовать функцию repeatIn() для перебора дат, но хитрость будет заключаться в корректировке ширины столбцов. Я подозреваю, что вы можете изменить атрибут colWidths таблицы, используя функцию setTag().

Вот пример где я использовал его для изменения стиля таблицы.

    <section>
      [[ repeatIn(lines(data['form'],object=o), 'a') ]]
      <blockTable>
        [[ setTag('blockTable','blockTable',{'colWidths': '80.0,150.0,80.0', 'style': 'Table' + str(a['level'] if a['level'] &lt;= 5 else 5)}) ]] 
        <tr>
          <td lineAboveColor="#000000" lineAboveThickness="5" lineAboveCount="1" lineAboveSpace="5">
            <para style="P10"><font>[[ setTag('font','font',{'face':o.font_style or 'Helvetica', 'color':o.color_font.name or 'black', 'backColor':o.color_back.name or 'white'}) ]] [[ a['code'] ]]</font></para>
          </td>
          <td>
            <para style="P17"><font color="white">[[ '..'*(a['level']-1) ]]</font><font>[[ setTag('font','font',{'face':o.font_style or 'Helvetica', 'color':o.color_font.name or 'black', 'backColor':o.color_back.name or 'white'}) ]] [[ a['name'] ]]</font></para>
          </td>
          <td>
            <para style="P18"><font>[[ setTag('font','font',{'face':o.font_style or 'Helvetica', 'color':o.color_font.name or 'black', 'backColor':o.color_back.name or 'white'}) ]][[ '%.2f'% a['balance'] ]]</font></para>
          </td>
        </tr>
      </blockTable>
    </section>
person Don Kirkby    schedule 22.05.2012