(58) 在计算字段提供搜索功能
2017-11-29 19:14
465 查看
问题描述:
运单号是在出库单上后勤填写的,平时销售订单有一个运单号是通过计算字段
从出库单上获的,这时,销售员,要在销售列表上,输入运单号 找到对应的销售订单
分析:
可以用两种方法
方法1.字段设置为 store=True , 这样和其它的普通的字段一样,可以搜索,有一点
在计算时会很慢,在出库货上填写运单号时,转半天,影响效率
方法2,字段加上search 加上对应的方法
这个写逻辑复杂一些,但效率最高
解决:
用方法2:
tracking_number_raw = fields.Text(string='Tracking Number Raw',
compute='_get_tracking_number',search='_tracking_number_raw_search')
def _tracking_number_raw_search(self, operator, value,limit=100):
if operator == 'like':
operator = 'ilike'
stock_pickings = self.env['stock.picking'].search([('picking_type_code','=','outgoing'),
('carrier_tracking_ref',operator,value)])
if stock_pickings :
domain = [('id', 'in', [sale.id for sale in stock_pickings.sale_id])]
else:
domain = [('id', '=', 0)]
return domain
---------------------------------
<record id="view_sales_order_filter_inherit" model="ir.ui.view">
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_sales_order_filter" />
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="tracking_number_raw" />
</field>
</field>
</record>
---------------------------------
这样在列表视图右上角输入运单号,有对应的运单号搜索,这样就可以找到对应的销售单
重点讲解 search 对应的方法
返回是domain , 对应的字段一定对象要有的字段,像我上面是sale.order对象
id 这个字段一定有的 ,这里可以灵活变化,可换成 name 条件去找,等等,这样就解决
所有关于字段为 compute 类型的搜索问题。
运单号是在出库单上后勤填写的,平时销售订单有一个运单号是通过计算字段
从出库单上获的,这时,销售员,要在销售列表上,输入运单号 找到对应的销售订单
分析:
可以用两种方法
方法1.字段设置为 store=True , 这样和其它的普通的字段一样,可以搜索,有一点
在计算时会很慢,在出库货上填写运单号时,转半天,影响效率
方法2,字段加上search 加上对应的方法
这个写逻辑复杂一些,但效率最高
解决:
用方法2:
tracking_number_raw = fields.Text(string='Tracking Number Raw',
compute='_get_tracking_number',search='_tracking_number_raw_search')
def _tracking_number_raw_search(self, operator, value,limit=100):
if operator == 'like':
operator = 'ilike'
stock_pickings = self.env['stock.picking'].search([('picking_type_code','=','outgoing'),
('carrier_tracking_ref',operator,value)])
if stock_pickings :
domain = [('id', 'in', [sale.id for sale in stock_pickings.sale_id])]
else:
domain = [('id', '=', 0)]
return domain
---------------------------------
<record id="view_sales_order_filter_inherit" model="ir.ui.view">
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_sales_order_filter" />
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="tracking_number_raw" />
</field>
</field>
</record>
---------------------------------
这样在列表视图右上角输入运单号,有对应的运单号搜索,这样就可以找到对应的销售单
重点讲解 search 对应的方法
返回是domain , 对应的字段一定对象要有的字段,像我上面是sale.order对象
id 这个字段一定有的 ,这里可以灵活变化,可换成 name 条件去找,等等,这样就解决
所有关于字段为 compute 类型的搜索问题。
相关文章推荐
- Yii2实现让关联字段支持搜索功能的方法
- 爬取携程网机票价格并提供搜索功能
- 【Android开发】完善搜索功能-添加最近查询字段
- [置顶] 增强型的FLEA_Db_TableDataGateway,提供按字段名称操作的功能
- Yii2-GridView 中让关联字段带搜索和排序功能示例
- 用lucene3实现搜索多字段并排序功能(设置权重)
- xiaocms 关于搜索功能 添加搜索字段
- python的N个小功能(文本字段对应数值,经纬度计算距离,两个时间点计算时间间隔)
- DEDE首页自定义字段、多条件搜索功能
- 给select标签提供搜索功能
- Yii2实现让关联字段支持搜索功能的方法
- Yii2让关联字段支持搜索功能
- Android提供语音搜索功能
- IQueryable 提供对数据类型已知的特定数据源的查询计算的功能
- Lucene in action 笔记 term vector——针对特定field建立的词频向量空间,不存!不会!影响搜索,其作用是告诉我们搜索结果是“如何”匹配的,用以提供高亮、计算相似度,在VSM模型中评分计算
- 仿站技巧二十四-织梦(dedecms)如何实现多字段搜索功能?
- openerp学习笔记 计算字段支持搜索
- phpcms后台栏目列表自定义字段搜索功能
- [MATLAB]The MathWorks为并行应用程序、多线程计算和64位平台提供关键功能
- 【Android开发】完善搜索功能-添加最近查询字段