首页
学习
活动
专区
工具
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这种继承方式为旧继承方式,已废弃,笔者实践了最新继承方式,如下 <?.../documentation/14.0/zh_CN/developer/reference/javascript/qweb.html 模型访问权限配置 odoo14\custom\estate\security

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

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

    2.1K20

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

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

    93520

    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\

    2.9K30

    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.6K40

    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.4K40

    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.4K10

    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 开发入门教程系列-基本视图

    在上一章已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是在带有操作和菜单XML文件定义。...其最基础版本仅简单列出要在显示所有字段(其中每个字段都是一列): <field name="...标记(<em>如</em>"div"和"h1")以及"class"属性(Odoo提供了一些内置类)来微调外观。...在odoo,domain对记录上条件进行编码:domain是用于选择模型记录子集条件列表。每个条件都是一个包含字段名、运算符和三元组。...如果指定字段满足作用于运算符条件,则记录满足条件。

    3.3K40

    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.1K30

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

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

    1.3K10

    何在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 应用 我们用Odoo11product模块作为演示 在文件.看到产品目录(ProductCategory类.15行起)代码 在Odoo11演示数据,产品目录结构一共有6个 我们查询下数据库数据...要找Saleable下所有子目录即可使用 作为条件 结论: 在Odoo实际使用,发现使用parent存储特性模块主要涉及account, product, stock_location....凡事皆有两面,这种存储特性会在数据库添加多余字段。其实是以空间换时间。

    2.3K80
    领券