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)联动其他字段值、选择和过滤的更多相关文章

  1. openerp学习笔记 视图样式(表格行颜色、按钮,字段只读、隐藏,按钮状态、类型、图标、权限,group边距,聚合[合计、平均],样式)

    表格行颜色:             <tree string="请假单列表" colors="red:state == 'refuse';blue:state = ...

  2. openerp学习笔记 视图(tree\form)中隐藏按钮( 创建、编辑、删除 ),tree视图中启用编辑

    视图(tree\form)中隐藏按钮( 创建.编辑.删除 )create="false" edit="false" delete="false&quo ...

  3. openerp学习笔记 视图继承(tree、form、search)

    支持的视图类型:form.tree.search ... 支持的定位方法:                  <notebook position="inside"> ...

  4. openerp学习笔记 视图更新时删除已存在的菜单或其他对象

    删除菜单示例: <delete id="base.menu_module_updates" model="ir.ui.menu"/><dele ...

  5. ArcGIS案例学习笔记-点集中最近点对和最远点对

    ArcGIS案例学习笔记-点集中最近点对和最远点对 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 目的:对于点图层,查找最近的点对和最远的点对 数据: 方法: 1. ...

  6. 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音

    <Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...

  7. openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)

    计算字段.关联字段,对象修改时自动变更保存(当 store=True 时),当 store=False 时,默认不支持过滤和分组7.0中非计算字段.关联字段只读时无法修改保存的问题暂未解决 示例代码: ...

  8. openerp学习笔记 搜索视图(自己创建的、自己的、本部门的、本部门及下属部门的、今日的、日期从,日期至、多条件模糊搜索、or、and)

    自己创建的: domain="[('create_uid','=',uid)]" 自己的: domain="[('employee_id','=','#kl_user_e ...

  9. openerp学习笔记 统计、分析、报表(过滤条件向导、分组报表、图形分析、比率计算、追加视图排序)

    待解决:图形中当改变分组时,图例不正确            存储比率计算时,分组合计不正确 wizard:过滤条件向导,用于输入过滤条件 wizard/sale_chart.py # -*- cod ...

随机推荐

  1. functools:管理函数的工具

    介绍 functools模块提供了一些工具来管理或扩展和其他callable对象,从而不必完全重写 修饰符 偏函数partial from functools import partial ''' f ...

  2. c++ 常用数据类型转换

    1.int型与string型的互相转换 int型转string型 void int2str(const int &int_temp,string &string_temp) { str ...

  3. C# .NET 微信开发-------当微信服务器推送消息时如何接收处理

    最近一直在看微信,整整一个月了,看到现在说实话还有很多没看的,从前两周一点看不懂到现在单个功能的一步步实现,不知道这样的速度是否太慢了. 不过现在往下看还是有思路了,目前整个文档完成学习只有1/3左右 ...

  4. Summer training #9

    A:树形DP 给出一棵树,但是它的边是有向边,选择一个城市,问最少调整多少条边的方向能使一个选中城市可以到达所有的点,输出最小的调整的边数,和对应的点 要改变的边的权值为1,不需要改变的边的权值为0, ...

  5. git 学习使用记录

    一.一个小时学会git:https://www.cnblogs.com/best/p/7474442.html 二.fetch fatal: Refusing to fetch into curren ...

  6. Gradle 配置国内镜像

    项目级配置 在项目中找到如下文件 打开,添加上阿里云镜像 maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}

  7. 题解 【SDOI2009】HH的项链

    题面 解析 这题本来莫队可以过的. 然而,对于某些加强的数据,莫队就得吸氧了.. 所以,本题解还将介绍另一种算法——树状数组. 首先,莫队就不用讲了吧(毕竟只是板子). 那么,开始进入正题(似乎有点啰 ...

  8. android的ant编译打包

    Android本身是支持ant打包项目的,并且SDK中自带一个build.xml文件. 通过该文件,可以对文件进行编译.打包.安装等.并且支持多种方式打包,如debug或者release. 一般的,可 ...

  9. CentOS 7下安装IDL 8.2

    材料准备: CentOS 7 x86_64 IDL 8.2,下载自 ftp://ftp.lowell.edu/incoming/temp/old/IDL_Clients/v8.2/idl82sp2li ...

  10. php+提高大文件上传速度

    PHP用超级全局变量数组$_FILES来记录文件上传相关信息的. 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本 ...