转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281406.html 当通过compute属性指定方法,根据依赖值计算得到当前字段值时.一般也要制定这个计算的逆运算——根据当前字段值,改变依赖值. 比如:开始日期+持续时间=结束日期,我们有这个可以得到结束日期. 如果用户指定了开始日期和结束日期,那么持续时间=结束日期-开始日期,实现这个逻辑的方法就是inverse属性值指向的方法. #定义结束日期字段,结束日期由开始+持续,而设置结束日期,则需要自行计…
出现该情况的原因是因为查询精度与数据库中存储精度不相同造成的,例如,查询精度为 YYYY-MM-DD 但是存储精度为 YYYY-MM-DD HH:MM:SS,就会出现该错误. 更改查询精度为YYYY-MM-DD即可正确查询.…
Python中没有像C#中有三元表达式 A?B:C 但在python中可以通过 A if condition else B 的方式来达到同样的效果. 例如 : 1 if True else 0 输出 1 ,1 if False else 0 输出 0 很简单. 下面我们利用这个三元表达式来解决Odoo中保险计算的问题. 由于国内公司投保时通常要考虑员工的户口类型问题,我们在系统中本地化了这么一个字段叫做e_hukou_locaiton,它有两个值,一个urban ,一个rural. 那么我们就可…
-----------更新日期15:17 2016-02-16 星期二-----------* 用到的js库   我们可以打开 addons/web/views/webclient_template.xml   看到如下:        <template id="web.assets_common">            <script type="text/javascript" src="/web/static/lib/es5-s…
一:self是什么 目前新版的Odoo中使用到的self,是对  游标cr.用户ID.模型.上下文.记录集.缓存  的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr.self.uid. 二:通过直接设置属性来改变数据库中字段值 我们在查出某模型的记录后,可以通过  record.XX = value  来直接修改记录的字段内容. 同样,在重写模型的write方法中,也可以通过 self.XX = value 来指定新增记录中某字段的值. 这里需要注意两点: 1:…
定义模型的时候,和python的其他框架类似,可以对比Django,同样是一个模型即:一个class对应生成数据库中的一张表, 只是odoo的继承机制比较复杂一点,在日常的开发中,定义模型的时候, 基本字段类型有: Char.Text.Selection.Html.Integer.Float.Date.Datetime.Boolean.Binary. 复杂类型:selection, function, related 用于设置类似主外键关联关系的字段有: Many2many Many2one O…
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9296922.html  甘特图 用图表来衡量实际与预期生产记录之间关系的方法中所使用的图表,亦称甘特进度表或条形进度表. odoo中的甘特视图用于展示甘特图表,根元素是gantt,没有子元素,但可以有以下属性: date_start (必选) -- 储存开始时间的字段 date_stop -- 提供结束时间的字段,可以用date_delay来实现同样的作用,两者必须提供一个,如果该字段被设置为False,那…
    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9280164.html    [Odoo中,一切皆模型,连视图都是模型.Odoo将各种数据,如:权限数据.类数据.视图数据等,按照模型分表存储,然后在查看时,按照索引从各个表格读取信息,组合成我们看到的内容.] 一:模型的属性 模型内置属性:可以使用一些内置属性来定义模型的一些特性: _name :创建odoo模型的内部标识符,必含项. _description :当用户界面显示模型时,一个方便用户的…
给 odoo 的 bom 明细加上位置字段 odoo 的 BOM 明细没有位置字段,这可无法用于电子生产中. 摸索了几天,找了一些教程,最终实现了. 在模型中找到 mrp_bom_line 增加自定义的 x_location 字段 修改视图中的字段加入 <field name="x_location"/> 结果如下: 先这样子,之后再优化.…
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826307.html 一:self是什么 目前新版的Odoo中使用到的self,是对  游标cr.用户ID.模型.上下文.记录集.缓存  的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr.self.uid. 二:通过直接设置属性来改变数据库中字段值 我们在查出某模型的记录后,可以通过  record.XX = value  来直接修改记录的字段内容. 同样,在重写模型的…
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826232.html Odoo中的五种action都是继承自ir.actions.actions模型实现的子类,共有五种.分别对应五种类型.五种用途. odoo中还有其他含有action命名的模型,诸如:action.todo等,都不是actions的子类,不是动作: odoo中翻译为动作的,也不全是action,例如:自动动作,它是ir.cron模型,执行服务器的定时任务. 一:窗口action(ir…
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826214.html 一:增 1:create():返回新创建的记录对象 self.create({'name': "New Name"}) 二:查 1:search() :返回数据集 接收domain表达式参数,返回符合条件的数据集,可以通过limit,offset参数限定查询条数,还可通过order参数根据某字段值对数据集排序. self.search([('is_company', '=…
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826144.html 一:Widget是什么 Odoo中定义了字段的显示形式,不同字段类型的字段都有其不同的默认widget负责展示. 我们也可以在视图文件上,为具体字段指定具体的widget,以达到我们想要的展示效果. 二:Odoo内置widget widget="statusbar":头部状态条标签 widget="email":电子邮件地址标签 widget=&quo…
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826127.html 一:domain表达式 domain表达式:通常用来筛选数据记录.它们使用特殊的语法,以便于Odoo ORM 将它们解析后生成对应的SQL WHERE数据库筛选语句. 二:domain的写法 domain表达式是一个条件列表,每个条件是一个形如('field_name', 'operator', value')的元组. filed_name 是需要筛选的字段,它可以使用点(.)来访…
 转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826118.html   [Odoo中,一切皆模型,连视图都是模型.Odoo将各种数据,如:权限数据.类数据.视图数据等,按照模型分表存储,然后在查看时,按照索引从各个表格读取信息,组合成我们看到的内容.] 一:模型的属性 模型内置属性:可以使用一些内置属性来定义模型的一些特性: _name :创建odoo模型的内部标识符,必含项. _description :当用户界面显示模型时,一个方便用户的模型…
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826114.html 在实际开发过程中,经常会遇到需要修改Odoo原生逻辑的情况.然而,直接修改Odoo底层代码,不利于后面odoo版本迭代时替换.因此,在不改变底层对象的时候添加新的功能,就显得十分重要. Odoo提供继承机制来实现这个目的,继承修改可以发生:Python代码和XML视图.Qweb模版上. 一:模型继承 1:模型修改 # -*- coding: utf-8 -*- from odoo…
参考 可参考官网例子https://doc.odoo.com/trunk/web/qweb/或 http://thierry-godin.developpez.com/openerp/tutorial-module-creation-pos-modification-english-version/ 1 Qweb官方定义 Qweb被用作OpenERP的Web客户端模板引擎.它是一种基于XML的模板语言,同Genshi, Thymeleaf.Facelets模板具有相似并且具有以下特性: 完全在客…
删除一个信息表中除id外其他字段都相同的冗余信息,如下 id name addr 1 a b 2 a b 3 b c 删除这个表中的冗余信息 即应该是 id name addr 1 a b 3 b c 设table为t Sql:delete from tableName where id not in (select min(id) from tableName group by name, addr…)…
--查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 SELECT cols.object_id , cols.column_id , cols.name AS ColumnName , TYPE_NAME(cols.system_type_id) AS ColumnType , cols.max_length , obj.name AS TableName FROM sys.columns cols…
alv中编辑的时候quan字段小数位数被截取掉:位数太多(最大只能为 0) 解决方法: ls_fcat-fieldname  =  'ZKBSL'.  ls_fcat-coltext  =  '卡板数量'.  ls_fcat-decimals = 3.  ls_fcat-edit = 'X'.  APPEND ls_fcat TO gt_fcat.  CLEAR ls_fcat. ls_fcat-decimals = 3.  表示提交的时候或者验证是三位小数.    …
Debug: 代码1: { name : 'input', index : 'input', width : 100, align : "center", formatter : function(value, grid, rows, state) { // alert(rows.ID); return "<a href=\"javascript:void(0)\" style=\"color:#798991\" onclick=…
SQL语句中count(1)count(*)count(字段)用法的区别 在SQL语句中count函数是最常用的函数之一,count函数是用来统计表中记录数的一个函数, 一. count(1)和count(*)的区别 1. count(1)和count(*)的作用: 都是检索表中所有记录行的数目,不论其是否包含null值. 2. 区别:但是count(1)比count(*)效率更高 二 . count(字段)与count(1)和count(*)的区别 count(字段)的作用是检索表中的这个字段…
转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl 函数声明:nvl(col,val) 说明:当col为空时取val作为返回值,当col不为空时取col值. 用处:最主要的是格式化数据,比如计算金额时,不想出现空数据,可以使用nvl(JINE,0)来得到0.由于null+(或-,*,/)数字等于 null,所以在表达式中对可能为空的值要使用nvl由…
SQL SERVER将某一列字段中的某个值替换为其他的值 UPDATE 表名 SET 列名 = REPLACE(列名 ,'贷','袋') SQL SERVER"函数 replace 的参数 1 的数据类型 ntext 无效"解决办法 UPDATE 表名 SET 列名 = REPLACE(CAST 列名 AS varchar(8000)),'贷','袋') 版权声明:本文为博主原创文章,未经博主允许不得转载.…
一个类中的数据初始化顺序是面试官非常喜欢出的面试题之一,本文用一个实例来介绍java中子类.父类中静态代码块.字段,非静态代码块.字段以及构造函数的执行顺序和次数. 一.包结构…
注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-from.html 群里面有个小伙伴询问了一个关于两个有Dependence关系的Picklist字段如何在Apex中通过control字段的值获取到Dependence字段的值,针对Salesforce配置来说,我们很好配置出两个Dependence字段的关系,通过点击设置一下include关系即可.…
详见:http://www.oejia.net/blog/2018/07/09/odoo_task_queue.html 概述 在 odoo 中可以用自带的cron实现异步任务,这个cron基于多线程,任务消息存储到数据库的,在一些异步任务量大.异步要求效率更高的场合其表现并不是很好,而且定义cron xml也是比较繁琐的事,这时可以用 task_queue 模块来承载,task_queue 是基于 celery实现的,性能好,海量任务的场景也能从容应对 项目地址 https://github.…
# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models, tools class test_report(models.Model): _name = 'test.report' _auto = False _description = 'Test Report' test = fi…
Sql中获取表结构(字段名称,类型,长度,说明) SELECT TableName = OBJECT_NAME(c.object_id), ColumnsName = c.name, Description = ex.value, ColumnType=t.name, Length=c.max_length FROM sys.columns c LEFT OUTER JOIN sys.extended_properties ex ON ex.major_id = c.object_id AND…
ORM方法简介 OpenERP的关键组件, ORM是一个完整的对象关系映射层,是开发人员不必编写基本的SQL管道. 业务对象被声明继承字models.Models的python类. 这让业务对象在ORM层中神奇的持久化. 例子中的self.search方法,下面我们就来具体介绍一下orm的几种基本方法: 1. browse(ids) 作用:获取指定记录的对象. 参数:记录值的ids, 返回值:对象列表. browse方法应用的更多,因为v7版本的search等方法的返回值是ids,而v8版本中的…