跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 求助,odoo13销售页面搜索产品字段

求助,odoo13销售页面搜索产品字段

已定时 已固定 已锁定 已移动 已解决 Odoo 新手求助
9 帖子 4 发布者 1.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zhang-wei918
    写于 最后由 zhang-wei918 编辑
    #1

    请大佬们帮忙看一下,在odoo13销售页面搜索产品字段,搜索结果不全,而且根据不同字段排序,出来的搜索结果数量还不一样?但是其他页面的搜索结果就没这问题。
    两种搜索方式搜索出来的结果数量完全不一样
    企业微信截图_16630375349115.png
    企业微信截图_16630374855738.png

    Z 2 条回复 最后回复
    0
    • H 离线
      H 离线
      hydrionburst
      写于 最后由 编辑
      #8

      这是一个ORM的bug,本质上是ORM在search sale_order 的时候join了 sale_order 和 sale_order_line, 由于一行sale_order 可以对应多行 sale_order_line,使得返回的(LIMIT 80)条数据中有重复的sale_order.id. 而最后到返回到前端的不同的 sale_order 数量小于80 (比如79)然后前端就以为最多只能搜到79条数据就没有向后端询问总数。 所以显示1-79/79

      这个问题在后续的ORM重构中应该已经解决。不过考虑到13.0马上就不支持了,所以除了升级也没啥好方法。

      H 1 条回复 最后回复
      1
      • Z 离线
        Z 离线
        zhang-wei918
        在 回复了 zhang-wei918 最后由 编辑
        #2

        @zhang-wei918 第一张图用自定义筛选出来2000多条结果是对的,第二张图用默认搜索产品才74条,结果数量少太多了。

        1 条回复 最后回复
        0
        • Z 离线
          Z 离线
          zhang-wei918
          在 回复了 zhang-wei918 最后由 zhang-wei918 编辑
          #3

          微信截图_20220913123558.png 微信截图_20220913123633.png
          不同排序,出来的结果数量也不同

          卓忆卓 digitalsatoriD 2 条回复 最后回复
          0
          • 卓忆卓 离线
            卓忆卓 离线
            卓忆
            在 回复了 zhang-wei918 最后由 卓忆 编辑
            #4

            @zhang-wei918
            github上有人提过类似的问题:
            https://github.com/odoo/odoo/issues/96490

            恬淡

            1 条回复 最后回复
            0
            • digitalsatoriD 离线
              digitalsatoriD 离线
              digitalsatori 管理员
              在 回复了 zhang-wei918 最后由 编辑
              #5

              @zhang-wei918 无法排除是因为你的系统中的定制的部分影响到了搜索的结果。

              你可以在http://runbot.odoo.com中选择V13来测试,如果能还原你的问题,那就是Odoo的bug

              【上海先安科技】(tony AT openerp.cn)

              卓忆卓 1 条回复 最后回复
              0
              • 卓忆卓 离线
                卓忆卓 离线
                卓忆
                在 回复了 digitalsatori 最后由 卓忆 编辑
                #6

                @digitalsatori 在 求助,odoo13销售页面搜索产品字段 中说:

                @zhang-wei918 无法排除是因为你的系统中的定制的部分影响到了搜索的结果。

                你可以在http://runbot.odoo.com中选择V13来测试,如果能还原你的问题,那就是Odoo的bug

                谢谢回复,
                测试环境,更新到最新的odoo13,更新base,卸载所有第三方模块,问题依旧,搜索 英文,中文,数字,筛选结果均不完整(均是7x 小于80),按订单号重新排序后会列出应该是正确的结果(3xxx,实际是2xxx)。
                runbot 上只有4x条销售数据,暂时没还原问题,试着把销售数据增加到80条以上 排下序 问题就能重现了(导出了20条数据,复制成80条,导入几次,销售订单条目就增加了,附上数据文件 sale.order.rar ,

                重现问题的截图:

                b4add7cb-3ea8-49af-ab1b-8cc4a2594877-image.png

                采购订单 就没这个问题。

                恬淡

                digitalsatoriD 1 条回复 最后回复
                0
                • digitalsatoriD 离线
                  digitalsatoriD 离线
                  digitalsatori 管理员
                  在 回复了 卓忆 最后由 digitalsatori 编辑
                  #7

                  @卓忆

                  这估计跟产品上的name_search有关。name_search有一个100的默认limit限制。在正反向排序中获得的这100个产品不同,用它们来过滤订单可能就带来不一样的结果。

                  这仅仅是我的猜测。如果上面的猜测是正确的,那么这个"bug"发生的场景是:

                  用来搜索产品的字符串,可以返回的产品的数量超过100个。比如你在上面的测试里,用字母'a'来搜索产品,这个搜索结果应该会超过100个。

                  你可以继续如下尝试,用一个字符串搜索产品,确保搜索出来的产品会在100以内。然后用这个字符串搜索在销售订单的产品字段上,然后再做排序处理,看看是否还会出现:排序不同搜索结果不同的现象。

                  【上海先安科技】(tony AT openerp.cn)

                  1 条回复 最后回复
                  0
                  • H 离线
                    H 离线
                    hydrionburst
                    写于 最后由 编辑
                    #8

                    这是一个ORM的bug,本质上是ORM在search sale_order 的时候join了 sale_order 和 sale_order_line, 由于一行sale_order 可以对应多行 sale_order_line,使得返回的(LIMIT 80)条数据中有重复的sale_order.id. 而最后到返回到前端的不同的 sale_order 数量小于80 (比如79)然后前端就以为最多只能搜到79条数据就没有向后端询问总数。 所以显示1-79/79

                    这个问题在后续的ORM重构中应该已经解决。不过考虑到13.0马上就不支持了,所以除了升级也没啥好方法。

                    H 1 条回复 最后回复
                    1
                    • H 离线
                      H 离线
                      hydrionburst
                      在 回复了 hydrionburst 最后由 编辑
                      #9

                      @hydrionburst
                      修正一下
                      是后端代码拿到79个数据以后认为总数小于80,就不再继续COUNT了

                      1 条回复 最后回复
                      0
                      • digitalsatoriD digitalsatori 将这个主题转为问答主题,在
                      • digitalsatoriD digitalsatori 将这个主题标记为已解决,在
                      • digitalsatoriD digitalsatori 从 中的 服装制衣 移动了该主题

                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 标签
                      • 热门
                      • 用户
                      • 群组