跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. Python 开发
  4. 关于odoo自定义分析报表,数据展示的问题。

关于odoo自定义分析报表,数据展示的问题。

已定时 已固定 已锁定 已移动 Python 开发
9 帖子 2 发布者 1.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • F 离线
    F 离线
    franciewang
    写于 最后由 编辑
    #1

    最近在做自定义分析报表相关内容,目前的解决方案是,把一个查询视图(report_view)作为一个单独的模型,查询结果(report_result)作为一个的模型模型,报表每次展示,都是先清空report_result中的数据,从report_view中查询出结果,然后再插入到report_result中,最终用report_result模型作为报表展示,但是这样数据量一旦多起来,速度会非常慢,我想问一下,odoo能不能把 sql查询的数据 直接展示到模型中,类似 ajax请求数据,展示在前端这种方式。

    1 条回复 最后回复
    0
    • digitalsatoriD 离线
      digitalsatoriD 离线
      digitalsatori 管理员
      写于 最后由 digitalsatori 编辑
      #2

      你的理解是错误的。report_view本来就是SQL查询

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

      F 1 条回复 最后回复
      0
      • F 离线
        F 离线
        franciewang
        写于 最后由 编辑
        #3
        此回复已被删除!
        1 条回复 最后回复
        0
        • F 离线
          F 离线
          franciewang
          在 回复了 digitalsatori 最后由 编辑
          #4

          @digitalsatori report_view 是一个视图,里面的所有数据都是全的(没有查询条件过滤),report_result是通过查询条件对report_view进行查询 得到的结果,现在查询结果 有了(数据结果和查询sql 都有),问题是怎么展示到前端,我现在 只能通过 清空report_result,然后把得到的查询结果 逐条插入到report_result中,这样让 odoo 自动显示出来。 我是想问 有没有什么方式 可以不用 在数据库 进行插入操作,直接将 展示结果 展示到前端。

          1 条回复 最后回复
          0
          • digitalsatoriD 离线
            digitalsatoriD 离线
            digitalsatori 管理员
            写于 最后由 编辑
            #5

            我估计你的report_result模型是设了类属性_auto = False,而report_view是定义在init方法中的。如果是这样,那么这个就是Odoo的标准的report定义方法。

            模型(比如report_result)并不一定要与数据库的表关联,它也可以与SQL View关联(通过上述表述的方式)。SQL View数据库视图并不是普通的数据库表,它本身并不存储数据,它实际就是对数据库表的Sql查询结果集。

            @franciewang 在 关于odoo自定义分析报表,数据展示的问题。 中说:

            从report_view中查询出结果,然后再插入到report_result中,最终用report_result模型作为报表展示

            你对报表数据的运算流程的描述是错误的。如果认为有性能问题,需要提供性能瓶颈的依据,不是靠这样猜测的。

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

            F 2 条回复 最后回复
            0
            • F 离线
              F 离线
              franciewang
              写于 最后由 编辑
              #6
              此回复已被删除!
              1 条回复 最后回复
              0
              • F 离线
                F 离线
                franciewang
                在 回复了 digitalsatori 最后由 编辑
                #7

                @digitalsatori 非常 感谢!!!豁然开朗

                1 条回复 最后回复
                0
                • F 离线
                  F 离线
                  franciewang
                  在 回复了 digitalsatori 最后由 编辑
                  #8

                  @digitalsatori 我还有两个疑问,请教一下:

                  • 如果把report_result用init方法 加载,那 是不是 只有升级的时候才会 改动,我希望每次点查询 都可以 执行一下 sql ,然后展现出来,这个可以实现么?

                  • 不用的用户,要同时进行查询,如果 两个人的查询条件不同,那么对应的 生成数据的 sql 就有所不同,对应生成的 报表会不会 有冲突?

                  1 条回复 最后回复
                  0
                  • digitalsatoriD 离线
                    digitalsatoriD 离线
                    digitalsatori 管理员
                    写于 最后由 编辑
                    #9

                    “数据库视图”(SQL VIEW)也可以理解为“虚拟表”,它是对数据库一个或多个表的查询结果集。结果集的内容会自动根据其查询表的数据的更新而更新。

                    Odoo的report就是基于这个“虚拟表”的数据根据不同用户所设定的查询条件返回并展示不同的数据结果。

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

                    1 条回复 最后回复
                    0

                    • 登录

                    • 没有帐号? 注册

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