• 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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 中文社区

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

已定时 已固定 已锁定 已移动 Python 开发
9 帖子 2 发布者 1357 浏览
    • 从旧到新
    • 从新到旧
    • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 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
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。