首页
学习
活动
专区
工具
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表格,并在报表中显示。

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

相关·内容

Odoo开发指北 01 初识Odoo

开发 实现功能 数据访问功能:信息的增删查改。基于MVC模式进行开发,其中Model用ORM了来对应数据库表并操纵,而view则用XML来定制界面,Controller也是用XML来定义响应。...工作流开发:用软件表达企业层级的工作协作关系。有两种方式:XML方式定义、可视化拖拽编程定义。 报表开发:把系统的数据以特定形式输出打印。主要有:文档报表、图形报表等。...然后使用自己的模块:把自己的模块路径设置到odoo中,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...Odoo提供的ORM接口匹配,也就是说这些模型类会自动存入sql中。...static:静态资源文件,如css、js等 views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述) init.py manifest.py:描述文件 脚手架命令   使用

2.4K30

odoo 给列表视图添加按钮实现数据文件导入

> 说明:,其中estate_customer_tree为下文javascript中定义的组件,实现添加自定义按钮...,想复用上述js,需要替换js中以下内容: 修改estate.upload.customer.mixin为其它自定义全局唯一值 替换o_estate_customer_upload为在对应按钮视图模板中定义的对应...class属性值 替换estate.CustomerHiddenUploadForm为在对应按钮视图模板中定义的隐藏表单模版名称 替换EstateCustomerListView.buttons为对应按钮视图模板中定义的按钮模版名称...,上下文节点的命名属性将被设置为属性元素的值(如果已经存在则替换,如果不存在则添加) 注意:参考官方文档,t-extend这种继承方式为旧的继承方式,已废弃,笔者实践了最新继承方式,如下 qweb.html 模型访问权限配置 odoo14\custom\estate\security

3.5K30
  • odoo 开发入门教程系列-QWeb简史

    Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中的记录以卡片状结构显示。...目标: 本节结束时创建一个房产的看板视图 在我们的地产应用程序中,我们希望添加一个看板视图来显示我们的房产。看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。...事实上,每张卡片的结构是表单元素(包括基本HTML)和QWeb的混合。看板视图的定义与列表视图和表单视图的定义相似,只是它们的根元素是kanban。...提示: 必须在ir.actions.act_window对应的view_mode中添加 kanban 修改odoo14\custom\estate\views\estate_property_views.xml...当我们需要字段的值但不想在视图中显示它时,可以将其添加到元素之外。

    2.2K20

    odoo 开发入门教程系列-安全-简介

    安全-简介 前一章中我们已经创建了第一个打算用于存储业务数据的表。在odoo这样的一个商业应用中,第一个考虑的问题就是谁(Odoo 用户(或者组用户))可以访问数据。...Data Files (CSV) Odoo是一个高度数据驱动的系统。虽然通过Python代码定制行为,但是模块的部分值在加载时设置的数据中。...此外,所有这些文件必须在 __manifest__.py中的data 列表中定义。 查看示例文件 # -*- coding: utf-8 -*- # Part of Odoo....注意: 按数据文件在__manifest__.py 中的顺序加载文件数据。这意味着数据A 引用B, 则必须确保B放在A之前。...标准格式为 model_,其中, 为模块中_name 替换.为_后的_name 的值 group_id/id 代指需应用访问权限的组。

    95520

    odoo 开发入门教程系列-一些用户界面

    类似CSV文件,XML文件也必须按约定添加到合适的目录,并在 __manifest__.py中进行定义。数据文件中的内容也是在模块安装或者更新时按序加载。...,直接从action获取,即为action属性值 练习 添加菜单 在合适的目录(本例中为odoo14/custom/estate/models/views)创建 estate_menus.xml 文件...我们看到一些属性,如required=True,会影响数据库中的表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段。...字段定义中,添加 default=X, 其中的X 可以是Python文本值(boolean, integer, float, string) ,也可以是一个以model对象自身为入参并返回一个值的函数:...字段默认值为‘Unknown’,而last_seen 字段默认值为当前时间 练习 -- 设置默认值 添加适当的默认值: 卧室数量默认值为 2 可用日期默认为3个月内 修改 odoo14\custom\

    3K30

    Odoo 基于Win10搭建基于Win10搭建odoo14开发环境搭建

    参考文档 "解决安装软件包提示Unable to find vcvarsall.bat的问题.md" 安装odoo依赖 解压下载后的odoo_14.0.latest.tar,并对解压结果目录中dist目录下的...安装 rtlcss: C:\> npm install -g rtlcss 添加“rtlcss.cmd”所在的文件夹(通常为:“C:\Users\AppData\Roaming\npm\”)...到系统系统环境变量“PATH” 安装wkhtmltopdf 安装后,将wkhtmltopdf.exe所在目录(例中"D:\Program Files\wkhtmltopdf\bin")添加到系统环境变量...测试运行 启动 复制上述odoo14\setup\odoo文件为odoo-bin(本质为一个py文件),并移动到setup同级目录下,即例中的odoo14目录下 虚拟运行环境下,输入以下命令后回车,可以看到类似如下输出...中运行配置 假设全部采用命令行参数 参考连接 https://www.odoo.com/documentation/14.0/zh_CN/administration/install/install.html

    3.7K40

    odoo 开发入门教程系列-模块交互

    模块交互 在上一章中,我们使用继承来修改模块的行为。在我们的房地产场景中,我们希望更进一步,能够为客户生成发票。...Odoo提供了一个开发票模块,因此直接从我们的房地产模块创建发票是很简单的,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序中创建发票 一个具体示例: 记账凭证(Account...模块中的正确目录创建 estate_property.py 文件 _inherit estate.property 模块 重写 action_sold 方法(你可能已经将该方法命名为不同的名称了) 以返回...super 调用 提示: 为了确保它正常工作,添加一个print 或者调试断点到重写的方法中。...不幸的是,没有一种简单的方法可以知道如何在Odoo中创建任何给定的对象。大多数时候,有必要查看其模型,以找到所需的字段并提供适当的值。 学习的一个好方法是看看其他模块是如何完成你想做的事情的。

    1.7K10

    odoo 开发入门教程系列-模型之间的关系(Relations Between Models)

    可通过以下方式轻松的访问partner中的数据: print(my_test_object.partner_id.name) 参见 foreign keys 练习1 添加房地产类型表 创建estate.property.type...提示: 别忘记在 __init__.py导入新的Python模块文件,并在__manifest.py__中添加数据或者访问权限。...练习2 会用上述提到的两种常用model添加买家和销售人员到estate.property模块。将它们添加到form视图中新tab页面。 销售人员的默认值必须是当前用户。买家不能被复制。...它支持标准Python的集合操作,如len()和iter(),以及recs1 | recs2等额外的集合操作。...comodel,必须在comodel中定义Many2one 字段 练习 添加房地产报价表 创建 estate.property.offer 模型,并添加以下字段: Field Type Attributes

    4.5K40

    odoo ORM API学习总结兼orm学习教程

    它注册为ir.property,也就是说它的值存储在ir_property表中,通过查询该表来获取该字段的值。...class odoo.fields.Html[源代码] html代码内容的封装 参数:略 class odoo.fields.Image[源代码] 图片的封装,扩展Binary 如果图像大小大于像素的max_width...取决于字段属性,添加一个默认的公司domain class odoo.fields.One2many[源代码] One2many字段的值为 comodel_name中所有满足条件的记录的结果集,而目标模型中的...取决于字段属性,添加一个默认的公司条件 limit (int) – 读取时用的可选限制 注意:odoo不会在当前模型对应表中为One2many,Many2many类型的属性建立对应的表字段,但会为Many2one...and extension) Odoo提供三种不同的机制,以模块化方式扩展模型: 从现有模型创建新模型,向副本中添加新信息,但保留原始模块 扩展其他模块中定义的模型,替换以前的版本 将模型的一些字段委派给它包含的记录

    13.5K10

    odoo wizard界面显示带复选框列表及勾选数据获取

    ,供web端使用,用于区分不同页面操作的数据,'estate.property.offer_3'为供web端使用的记录ID,'data'键值代表记录的数据,其id键值代表记录在数据库中的主键id,context...以上参数同下文saveSelectionsToSessionStorage 参数可同时共存 如果需要将action绑定到指定模型指定视图的Action,可以在ir.actions.act_window定义中添加.../14.0/zh_CN/developer/reference/addons/actions.html 实现版本2 对应demo_wizard.py实现版本2 说明: saveSelectionsToSessionStorage 为"true"则表示点击复选框时,将当前选取的记录存到浏览器sessionStorage中,可选 odoo14\custom\estate...> odoo14\custom\estate\__manifest__.py 加载自定义模板文件,进而实现自定义js文件的加载 #!

    5.3K60

    odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)

    然而,我们可能需要给定模型中字段之间的链接。有时,一个字段的值是根据其他字段的值确定的,有时我们希望帮助用户输入数据。...自然地我们将总面积定义这两者的总和,我们将为此使用计算的字段的概念,即给定字段的值将从其他字段的值中计算出来。 到目前为止,字段已直接存储在数据库中并直接从数据库中检索。字段也可以被计算。...在这种情况下,不会从数据库中检索字段的值,而是通过调用模型的方法来动态计算的字段的值。 要创建计算的字段,请创建字段并将其属性compute设置为方法的名称。...练习--为花园面积和朝向赋值 在estate.property模型中创建 onchange 方法以便当勾选花园时,设置花园面积(10)和朝向(North),未勾选时,移除花园面积和朝向值。...修改odoo14\custom\estate\models\estate_property.py,末尾添加一下代码 @api.onchange("garden") def _onchange_garden

    3.2K30

    「Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

    在这篇教程里我们将会了解到 Odoo 模型里的一些其他类型的字段和特殊机制,而我依然会继续带领大家一起完善我们的 Todo 应用,不断地往里面添加一些新的功能特性,让它看起来更丰满也更实用一些。...选择字段 在上一篇教程中,我们已经创建好了待办事项的模型,但是只是添加了「描述」和「已完成?」两个字段,这肯定是不能满足我们的需求的。...此处我们还给这个字段添加了默认值 todo,表示当一个待办事项被创建后,如果没有指定紧急程度,将默认是待办状态。我们可以为任意类型的字段添加默认值。...deadline 这个字段的值(我们需要用它的值和当前时间进行比较),如果一个计算字段会用到多个其他字段的值,这里就需要以逗号分隔,将用到的值的字段名依次传入装饰器中。...实际上获取当前时间用的也是这个方法,只不过 Odoo 的 ORM 替我们封装了一层,fields.Datetime.now() 是类 Datetime 的静态方法: # fields.py class

    1.4K10

    如何在Ubuntu 18.04上部署Odoo 11

    激活环境: source odoo11-venv/bin/activate】 并安装所有必需的Python模块: pip3 install -r odoo11/requirements.txt 如果在安装过程中遇到任何编译错误...,请确保已安装“开始之前”部分中列出的所有必需依赖项。...我们需要告诉Odoo我们将使用代理,打开配置文件并添加以下行: /etc/odoo11.conf proxy_mode = True 重新启动Odoo服务以使更改生效: sudo systemctl restart...在本指南中,我们将强制Odoo只在127.0.0.1上进行监听,打开Odoo配置文件末尾添加以下两行: /etc/odoo11.conf xmlrpc_interface = 127.0.0.1 netrpc_interface...根据官方的[Odoo文档](“https://www.odoo.com/documentation/11.0/setup/deploy.html”)计算工人数量和所需的RAM内存大小,我们将使用以下公式和假设

    1.9K20

    ODOO优化层级关系查询效率的方法

    《Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系的建立。 代码如下 在上面的代码中。 使用字段来关联上层记录。...(如递归查询文件夹文件) Odoo中为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B的上级对象。那么存在这样的逻辑关系。...Odoo 应用 我们用Odoo11的product模块作为演示 在文件中.看到产品目录(ProductCategory类.15行起)的代码 在Odoo11的演示数据中,产品的目录结构一共有6个 我们查询下数据库中的数据...要找Saleable下的所有子目录即可使用 作为条件 结论: 在Odoo的实际使用中,发现使用parent存储特性的模块主要涉及account, product, stock_location....凡事皆有两面,这种存储特性会在数据库中添加多余的字段。其实是以空间换时间。

    2.3K80
    领券