ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

odoo10 关于ODOOsearch视图

2020-01-28 15:01:35  阅读:339  来源: 互联网

标签:work ODOOsearch odoo10 kthrp 视图 搜索 asset maintenance order


前言:

关于search视图,存在三个知识点,就是:
  1. 搜索

  2. 过滤

  3. 分组

1. 搜索

指的就是,在搜索框,根据用户需求,指定搜索实现代码实现了的搜索功能,比如:按部门搜索,按资产名称搜索等等....

实现方法:

<record id="view_kthrp_asset_maintenance_wo_search" model="ir.ui.view">
    <field name="name">kthrp.asset.maintenance.work.order.search</field>
    <field name="model">kthrp.asset.maintenance.work.order</field>
    <field name="arch" type="xml">
        <search>
            <field name="wo_overview" string="Work Order"
filter_domain="['|',('doc_number','ilike',self),('wo_overview','ilike',self)]"/>
            <field name="asset_id" string="Asset" filter_domain="['|','|','|',('asset_id.name','ilike',self),('asset_id.code','ilike',self),('object_list_ids.asset_id.name','ilike',self),('object_list_ids.asset_id.code','ilike',self)]"/>
            <field name="engineer_id" string="Engineer" filter_domain="['|',('engineer_id.employee_id.name','ilike',self),('engineer_id.employee_id.number','ilike',self)]"/>
            <field name="use_department_id" string="Use Dept."
filter_domain="['|',
('use_department_id.code', 'ilike', self), '|',
('use_department_id.organization', 'ilike', self),
('use_department_id.pinyin_code', 'ilike', self)]"/>
        </search>
    </field>
</record>

在search标签内部,就是实现搜索的xml代码,可以看出,代码是通过工作单号,资产名称、编码,工程师,使用部门进行的搜索。

现在我们来细说代码的实现,首先record是一个创建了一个ir.ui.view模型的记录,name为kthrp.asset.maintenance.work.order.search,模型为kthrp.asset.maintenance.work.order,

search标签中,name是一个属性,作用其实不大,string表示展示时的名字,(当用户输入自己想要搜索的名词时,就会提示,按string搜索)

filter_domain跟的是搜索时的数据限制,如果是模糊搜索就用'ilike',完全匹配搜索就用'like', self表示当前输入的内容。

万物皆对象,对什么字段进行限制,都是从model中的存在的字段进行筛选的,通过对象点属性的方式,就能准确定位到我们需要定位的字段属性了。

2. 过滤

<record id="view_kthrp_asset_maintenance_wo_search" model="ir.ui.view">
    <field name="name">kthrp.asset.maintenance.work.order.search</field>
    <field name="model">kthrp.asset.maintenance.work.order</field>
    <field name="arch" type="xml">
        <search>
            <filter string="Created" name="created" domain="[('state','=','created')]"/>
            <filter string="Processing" name="processing" domain="[('state','=','processing')]"/>
            <filter string="Assigned" name="assigned" domain="[('state','=','assigned')]"/>
            <filter string="Completed" name="completed" domain="[('state','=','completed')]"/>
            <filter string="Urgent" name="urgency_id" domain="[('priority_id','=','urgent'),('type_classification','in',('repair','preventive'))]"/>
        </search>
    </field>
</record>  

过滤就是输入框下方的小按钮,点击会成为下拉选择,选择需要的状况进行数据的过滤

代码中string表示过滤信息的展示,name辅助属性,domain就是数据的限制实现,根据model中存在的字段,进行数据的限制

3. 分组

<record id="view_kthrp_asset_maintenance_wo_search" model="ir.ui.view">
    <field name="name">kthrp.asset.maintenance.work.order.search</field>
    <field name="model">kthrp.asset.maintenance.work.order</field>
    <field name="arch" type="xml">
        <search>
            <group string="Group By">
                <filter string="State" name="state" domain="[]" context="{'group_by':'state'}"/>
                <filter string="WO Type" name="type_id" domain="[]" context="{'group_by':'type_id'}"/>
                <filter string="Use Dept." name="use_department_id"
domain="[]"
context="{'group_by':'use_department_id'}"/>
            </group>
        </search>
    </field>
</record>

 

分组是需要用group标签包括在里面才能生效,写法也都是固定的方式,只要写上你需要分组的字段,就可以了相对来说会比搜索和过滤简单 一些。

标签:work,ODOOsearch,odoo10,kthrp,视图,搜索,asset,maintenance,order
来源: https://www.cnblogs.com/pywjh/p/12238121.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有