openerp学习笔记 视图中字段只变化(on_change)联动其他字段值、选择和过滤
1.修改产品数量时,自动计算产品销售金额、销售成本和销售利润
<field name="num" on_change="on_change_product(product, num, price)"/>
2.选择历史工单时,按销售单中当前选择的客户自动过滤,打开选择历史工单窗口时,过滤条件默认为销售单中当前选择的客户
<field name="work_order" domain="[('customer','=',customer)]" context="{'search_default_customer':customer}"/>
代码示例:
<!-- views dispatch_sale_form -->
<record model="ir.ui.view"
id="dispatch_sale_form">
<field
name="name">dispatch.sale.form</field>
<field
name="model">dispatch.sale</field>
<field name="type">form</field>
<field name="priority">2</field>
<field name="arch" type="xml">
<form
string="销售单明细"
version="7.0">
<header>
<button string="确认" name="set_to_confirmed" states="draft" type="object"
icon="gtk-yes"/>
<button string="还原为草稿" name="set_to_draft" states="confirmed" type="object"
icon="gtk-convert"
groups="kl_dispatch.group_dispatch_manager"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed"
statusbar_colors='{"draft":"blue"}'/>
</header>
<sheet>
<group>
<group>
<field
name="date"/>
<field
name="name"/>
<field
name="customer"/>
<field name="product" on_change="on_change_product(product, num,
price)"/>
<field name="num" on_change="on_change_product(product, num,
price)"/>
<field name="price" on_change="on_change_product(product, num,
price)"/>
<field name="cost" on_change="on_change_product(product, num, price)"
invisible="1"/>
<field name="cost_view"
invisible="0"/>
</group>
<group>
<field name="employee_id"
on_change="onchange_employee_id(employee_id)"/>
<field
name="department_id"/>
<field name="work_order" domain="[('customer','=',customer)]"
context="{'search_default_customer':customer}"/>
<field
name="klbh"/>
<field
name="sum_sale"/>
<field
name="sum_cost"/>
<field
name="sum_profit"/>
</group>
</group>
<group>
<field name="note"
colspan="4"/>
</group>
</sheet>
</form>
</field>
</record>
#职员修改自动更改部门
def onchange_employee_id(self, cr, uid, ids,
employee_id,
context=None):
department_id = False
if
employee_id:
emp_obj =
self.pool.get('hr.employee')
employee = emp_obj.browse(cr, uid, employee_id,
context=context)
department_id =
employee.department_id.id
return
{'value': {'department_id': department_id}}
#产品、数量、单价、成本更改,自动计算销售金额、成本金额、利润金额
def
on_change_product(self,cr,uid,ids,product_id, num,
price):
v={}
if
product_id:
product=self.pool.get("dispatch.product").browse(cr,uid,product_id)
v["cost"]=product.cost
v["cost_view"]=product.cost
else:
v["cost"]=0
v["cost_view"]=0
v['sum_sale']=num*price
v['sum_cost']=num*v["cost"]
v['sum_profit']=v['sum_sale']-v['sum_cost']
return {"value":v}
#按销售单中对应的客户,自动过滤选择工单
domain="[('customer','=',customer)]" ,打开选择窗口时过滤条件默认客户
context="{'search_default_customer':customer}"
<group>
<field
name="date"/>
<field
name="name"/>
<field
name="customer"/>
<field name="product" on_change="on_change_product(product, num,
price)"/>
<field name="num" on_change="on_change_product(product, num,
price)"/>
<field name="price" on_change="on_change_product(product, num,
price)"/>
<field name="cost" on_change="on_change_product(product, num, price)"
invisible="1"/>
<field name="cost_view"
invisible="0"/>
</group>
<group>
<field name="employee_id"
on_change="onchange_employee_id(employee_id)"/>
<field
name="department_id"/>
<field name="work_order" domain="[('customer','=',customer)]"
context="{'search_default_customer':customer}"/>
<field
name="klbh"/>
<field
name="sum_sale"/>
<field
name="sum_cost"/>
<field
name="sum_profit"/>
</group>
openerp学习笔记 视图中字段只变化(on_change)联动其他字段值、选择和过滤的更多相关文章
- openerp学习笔记 视图样式(表格行颜色、按钮,字段只读、隐藏,按钮状态、类型、图标、权限,group边距,聚合[合计、平均],样式)
表格行颜色: <tree string="请假单列表" colors="red:state == 'refuse';blue:state = ...
- openerp学习笔记 视图(tree\form)中隐藏按钮( 创建、编辑、删除 ),tree视图中启用编辑
视图(tree\form)中隐藏按钮( 创建.编辑.删除 )create="false" edit="false" delete="false&quo ...
- openerp学习笔记 视图继承(tree、form、search)
支持的视图类型:form.tree.search ... 支持的定位方法: <notebook position="inside"> ...
- openerp学习笔记 视图更新时删除已存在的菜单或其他对象
删除菜单示例: <delete id="base.menu_module_updates" model="ir.ui.menu"/><dele ...
- ArcGIS案例学习笔记-点集中最近点对和最远点对
ArcGIS案例学习笔记-点集中最近点对和最远点对 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 目的:对于点图层,查找最近的点对和最远的点对 数据: 方法: 1. ...
- 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...
- openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)
计算字段.关联字段,对象修改时自动变更保存(当 store=True 时),当 store=False 时,默认不支持过滤和分组7.0中非计算字段.关联字段只读时无法修改保存的问题暂未解决 示例代码: ...
- openerp学习笔记 搜索视图(自己创建的、自己的、本部门的、本部门及下属部门的、今日的、日期从,日期至、多条件模糊搜索、or、and)
自己创建的: domain="[('create_uid','=',uid)]" 自己的: domain="[('employee_id','=','#kl_user_e ...
- openerp学习笔记 统计、分析、报表(过滤条件向导、分组报表、图形分析、比率计算、追加视图排序)
待解决:图形中当改变分组时,图例不正确 存储比率计算时,分组合计不正确 wizard:过滤条件向导,用于输入过滤条件 wizard/sale_chart.py # -*- cod ...
随机推荐
- resultMap自定义映射---8.3.1. 解决列名(表中的字段名称)和实体类中的属性名不一致
1.1.1.1. 步骤一:将驼峰匹配注释掉 --------------测试完成后仍然 回来开启 其他地方可能用到 一旦注释掉驼峰匹配,那么再通过queryUserById查询的结果中,用 ...
- AlertDialog 对话框 5种
MainActivity.class public class MainActivity extends AppCompatActivity implements View.OnClickListen ...
- dsoframer控件注册,解注册和检查注册情况
public class DsoframerHelper { private static string dsoframerPath = System.Windows.Forms.Applicat ...
- 【OI学习注意事项】
1. 必备知识 普及组必学 1.模拟算法(暴力枚举),按照题目的要求,题目怎么说就怎么做,保证时间和正确性即可. 2.搜索与回溯,主要的是\(DFS\)(深度优先搜索)和\(BFS\)(宽度优先搜索) ...
- springboot2.x下actuator模块
一.简介 spring-boot-starter-actuator模块是一个spring提供的监控模块.我们在开运行发过程中,需要实时和定时监控服务的各项状态和可用性.Spring Boot的s ...
- java中简单的反射
1.为什么会用到反射机制? 最近需要写定时服务,如果一个一个去写定时服务的话,后期维护是很烦人的,通过反射机制,我们就可以将定时服务的信息通过数据配置来实现,这样我们后期就可以将整个模块交给运维人员去 ...
- 题解 最长上升子序列 LIS
最长上升子序列 LIS Description 给出一个 1 ∼ n (n ≤ 10^5) 的排列 P 求其最长上升子序列长度 Input 第一行一个正整数n,表示序列中整数个数: 第二行是空格隔开的 ...
- C#窗体的resx文件
这些图片在项目文件中没找到,原来都存在了resx文件中. 属性界面的Image.BackgroundImage属性手动选择的图片会自动存储到resx文件中,之后这些图片源文件就可以删除了.resx中的 ...
- C#验证数字的正则表达
说明:@符号的作用,省去转义字符\ "^\\+?[1-9][0-9]*$" 与 @"^\+?[1-9][0-9]*$" 等效 @"^(0?[1-9 ...
- 2019牛客暑期多校训练营(第二场)D bitset
题意 给一个n个结点的带点权的图,找到第k小的团的权值 分析 用bitset表示团的状态,一个结点必须和团里的每个结点都连边才能加进去,所以可以直接用\(\&\)运算来判断一个结点是否能加进去 ...