首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在py odoo 10 / 11的qweb报表中添加带有值的html表

在py odoo 10/11的qweb报表中添加带有值的HTML表,可以按照以下步骤进行操作:

  1. 在odoo模块中创建一个新的qweb报表模板文件,例如report_template.xml
  2. 在模板文件中,使用<t t-esc="..."/>标签来插入HTML代码,并通过Odoo的模板语言将变量值传递给HTML代码。

例如,假设你有一个名为table_data的变量,它包含了要在HTML表中显示的数据。你可以使用以下代码将数据传递给HTML表格:

代码语言:xml
复制

Column 1

Column 2

代码语言:txt
复制

注意,table_data是一个包含字典的列表,每个字典代表一行数据,其中column1column2是字典中的键。

  1. 在你的报表模型中,将模板文件与报表视图关联起来。
代码语言:python
代码运行次数:0
复制

class ReportModel(models.AbstractModel):

代码语言:txt
复制
   _name = 'report.module_name.report_template'
代码语言:txt
复制
   @api.model
代码语言:txt
复制
   def _get_report_values(self, docids, data=None):
代码语言:txt
复制
       # 获取报表数据
代码语言:txt
复制
       report_data = self.env['your.model'].browse(docids)
代码语言:txt
复制
       # 返回报表模板和数据
代码语言:txt
复制
       return {
代码语言:txt
复制
           'doc_ids': docids,
代码语言:txt
复制
           'doc_model': 'your.model',
代码语言:txt
复制
           'docs': report_data,
代码语言:txt
复制
           'table_data': report_data.get_table_data(),  # 获取HTML表格数据的方法
代码语言:txt
复制
       }
代码语言:txt
复制

注意,module_name是你的模块名称,your.model是你的报表模型。

  1. 在你的模块中定义报表视图,将模板文件与报表视图关联起来。
代码语言:xml
复制

<record id="report_view_id" model="ir.ui.view">

代码语言:txt
复制
   <field name="name">report.template.view</field>
代码语言:txt
复制
   <field name="model">your.model</field>
代码语言:txt
复制
   <field name="arch" type="xml">
代码语言:txt
复制
       <template>
代码语言:txt
复制
           <t t-call="report.html_container">
代码语言:txt
复制
               <t t-foreach="docs" t-as="doc">
代码语言:txt
复制
                   <t t-call="module_name.report_template"/>
代码语言:txt
复制
               </t>
代码语言:txt
复制
           </t>
代码语言:txt
复制
       </template>
代码语言:txt
复制
   </field>

</record>

代码语言:txt
复制

注意,module_name是你的模块名称。

  1. 在你的模块中定义报表动作,将报表视图与报表动作关联起来。
代码语言:xml
复制

<record id="report_action_id" model="ir.actions.report">

代码语言:txt
复制
   <field name="name">Report Name</field>
代码语言:txt
复制
   <field name="type">ir.actions.report</field>
代码语言:txt
复制
   <field name="report_name">module_name.report_template</field>
代码语言:txt
复制
   <field name="report_type">qweb-pdf</field>
代码语言:txt
复制
   <field name="binding_model_id" ref="module_name.model_your_model"/>

</record>

代码语言:txt
复制

注意,module_name是你的模块名称,Report Name是报表名称,model_your_model是你的报表模型。

完成以上步骤后,你就可以在py odoo 10/11的qweb报表中添加带有值的HTML表了。根据你的具体需求,可以根据数据动态生成HTML表格,并在报表中显示。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券