2016-01-27 4 views
1

родимых,Условных Корпоративный RML Header с docIf

есть запрос на печать корпоративного заголовка определенного пользователя только на первой странице бизнес-документ в формате PDF (такие как счета-фактура, продажи котировка, заказ клиента). Все остальные страницы отчетов в формате PDF должны содержать только наш корпоративный логотип.

Лаки, чтобы найти post of Brett Lehrer я пытался добиться этого с помощью

<header> 
    <pageTemplate> 
     <frame id="first" x1="1.3cm" y1="3.0cm" height="21.7cm" width="19.0cm"/> 
     <stylesheet> 
      <!-- style definitions in here --> 
     </stylesheet> 
     <pageGraphics> 
      ... 
      <!-- corporate logo definition in here --> 
      ... 
      <docIf cond="doc.page==1"> 
       ... 
       <!-- all corporate contact data in here --> 
       ... 
      </docIf> 
     </pageGraphics> 
    </pageTemplate> 
</header> 

в определении пользовательского корпоративного заголовка RML.

Далее модифицированный файл ./odoo/openerp/report/render/rml2pdf/trml2pdf.py в функции def _flowable(...) обрабатывать <docIf> тег следующим

elif node.tag == 'hr': 
    width_hr=node.get('width') or '100%' 
    color_hr=node.get('color') or 'black' 
    thickness_hr=node.get('thickness') or 1 
    lineCap_hr=node.get('lineCap') or 'round' 
    return platypus.flowables.HRFlowable(width=width_hr,color=color.get(color_hr),thickness=float(thickness_hr),lineCap=str(lineCap_hr)) 
##### edit-start #### 
elif node.tag == 'docIf': 
    return platypus.flowables.DocIf(node.get('cond'), self.render(node)) 
##### edit-end #### 
else: 
    sys.stderr.write('Warning: flowable not yet implemented: %s !\n' % (node.tag,)) 
    return None 

Но это принесло не требуемый результат:

печатает корпоративные заголовка на PDF без какой-либо из определения внутри тегов <docIf> на каждые страница. Кажется, что состояние никогда не становится True.

Веб-исследование в течение нескольких дней теперь не принесло результата.

Любой из вас может решить такой запрос или сыграть с условным выходом RML в OpenERP/odoo?

Вы можете помочь, пожалуйста? Ваши комментарии/идеи высоко ценятся. Спасибо

ответ

0

Я бы просто прокомментировал, но мне не разрешено. ^^ Я думаю, что невозможно использовать docIf с номерами страниц для изменения макета, поскольку rml обрабатывает номера страниц как один из последних шагов. (Я думаю ?!) Я тоже пробовал и не работал.

Long Story short У меня была та же проблема. Я решил это так. Link

До тех пор, пока вы просто хотите изменить первую страницу, она должна работать.

mfg