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

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

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. o2m类型的数据进行分page展示

o2m类型的数据进行分page展示

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
14 帖子 3 发布者 7.1k 浏览 3 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • H 离线
    H 离线
    hui
    发表于 最后由 hui 编辑
    #1

    对数据进行分页展示(分页展示的数据是model中的一个o2m的字段)最好是form视图中的在notebook中分几个page展示相关字段(主要是想跟在excel中分多个sheet展示这样的效果),或者是能自定义每页展示的数据也行,或者还有其他方法可以动态展示的吗?

    S 1 条回复 最后回复
    0
    • H hui

      对数据进行分页展示(分页展示的数据是model中的一个o2m的字段)最好是form视图中的在notebook中分几个page展示相关字段(主要是想跟在excel中分多个sheet展示这样的效果),或者是能自定义每页展示的数据也行,或者还有其他方法可以动态展示的吗?

      S 离线
      S 离线
      Siyuan
      发表于 最后由 编辑
      #2

      @hui

      自己写个分页显示的 widget

      H 1 条回复 最后回复
      0
      • S Siyuan

        @hui

        自己写个分页显示的 widget

        H 离线
        H 离线
        hui
        发表于 最后由 编辑
        #3

        @siyuan 这个一点头绪页没有啊

        鲍 1 条回复 最后回复
        0
        • H hui

          @siyuan 这个一点头绪页没有啊

          鲍 离线
          鲍 离线
          鲍永道
          发表于 最后由 编辑
          #4

          @hui 目前odoo的one2many在form中不是直接可以使用page标签么。

          S H 2 条回复 最后回复
          0
          • 鲍 鲍永道

            @hui 目前odoo的one2many在form中不是直接可以使用page标签么。

            S 离线
            S 离线
            Siyuan
            发表于 最后由 编辑
            #5

            @鲍永道

            框架里同一个字段,

            一次只会刷新最后一个;

            你放多个同一个字段,

            只有最后一个会有值,

            其他的都是空

            H 1 条回复 最后回复
            0
            • 鲍 鲍永道

              @hui 目前odoo的one2many在form中不是直接可以使用page标签么。

              H 离线
              H 离线
              hui
              发表于 最后由 编辑
              #6

              @鲍永道 是可以的,但是我生成的page的数目不固定啊

              S 1 条回复 最后回复
              0
              • S Siyuan

                @鲍永道

                框架里同一个字段,

                一次只会刷新最后一个;

                你放多个同一个字段,

                只有最后一个会有值,

                其他的都是空

                H 离线
                H 离线
                hui
                发表于 最后由 编辑
                #7

                @siyuan 那你说的用分页显示的 widget可以解决,能再提供点思路吗

                S 1 条回复 最后回复
                0
                • H hui

                  @鲍永道 是可以的,但是我生成的page的数目不固定啊

                  S 离线
                  S 离线
                  Siyuan
                  发表于 最后由 编辑
                  #8

                  @hui

                  对应模块重写:fields_view_get,

                  在 view_type 是 form 的情况下动态计算更新 page

                  H 1 条回复 最后回复
                  0
                  • S Siyuan

                    @hui

                    对应模块重写:fields_view_get,

                    在 view_type 是 form 的情况下动态计算更新 page

                    H 离线
                    H 离线
                    hui
                    发表于 最后由 编辑
                    #9

                    @siyuan 这个我试过了,这个重写以后的只在arch里面显示的page,相当于html代码吧,其他都是一些字段的属性信息。你说的这个怎么动态计算啊

                    1 条回复 最后回复
                    0
                    • H hui

                      @siyuan 那你说的用分页显示的 widget可以解决,能再提供点思路吗

                      S 离线
                      S 离线
                      Siyuan
                      发表于 最后由 编辑
                      #10

                      @hui

                      Ony2many 渲染用的都是 继承的 ListView 模板,

                      写个 widget 用你自己写的 xml 模板,

                      只读不难,

                      编辑的话,要调试 js 代码,会比较麻烦

                      H 2 条回复 最后回复
                      0
                      • S Siyuan

                        @hui

                        Ony2many 渲染用的都是 继承的 ListView 模板,

                        写个 widget 用你自己写的 xml 模板,

                        只读不难,

                        编辑的话,要调试 js 代码,会比较麻烦

                        H 离线
                        H 离线
                        hui
                        发表于 最后由 编辑
                        #11

                        @siyuan 是挺麻烦的。
                        我就是想数据分开,类似excel里面sheet那样展示,有没有其他更好的建议参考啊

                        S 1 条回复 最后回复
                        0
                        • H hui

                          @siyuan 是挺麻烦的。
                          我就是想数据分开,类似excel里面sheet那样展示,有没有其他更好的建议参考啊

                          S 离线
                          S 离线
                          Siyuan
                          发表于 最后由 编辑
                          #12

                          @hui

                          那你就脱离 odoo 框架了;

                          只读都简单,

                          麻烦的是编辑,

                          涉及到前后端通讯,

                          例如:后端的 onchange, compute 等事件的触发

                          1 条回复 最后回复
                          0
                          • S Siyuan

                            @hui

                            Ony2many 渲染用的都是 继承的 ListView 模板,

                            写个 widget 用你自己写的 xml 模板,

                            只读不难,

                            编辑的话,要调试 js 代码,会比较麻烦

                            H 离线
                            H 离线
                            hui
                            发表于 最后由 编辑
                            #13

                            @siyuan
                            我写一个template,这个template就是我想要的视图,然后在我需要的地方调用,就在我的form视图中写
                            <t t-call="pages_template" />。但是现在没作用,也没有数据显示啊

                            <?xml version="1.0" encoding="utf-8" ?>
                            <odoo>
                                <data>
                                    <template id="pages_template">
                                        <notebook>
                                            <t t-foreach="object.line_ids" t-as="l">
                                                <page string="Page==">
                                                    Part Num.
                                                    <span t-field="l.part_number"/>
                                                </page>
                                            </t>
                                        </notebook>
                                    </template>
                                </data>
                            </odoo>
                            
                            H 1 条回复 最后回复
                            0
                            • H hui

                              @siyuan
                              我写一个template,这个template就是我想要的视图,然后在我需要的地方调用,就在我的form视图中写
                              <t t-call="pages_template" />。但是现在没作用,也没有数据显示啊

                              <?xml version="1.0" encoding="utf-8" ?>
                              <odoo>
                                  <data>
                                      <template id="pages_template">
                                          <notebook>
                                              <t t-foreach="object.line_ids" t-as="l">
                                                  <page string="Page==">
                                                      Part Num.
                                                      <span t-field="l.part_number"/>
                                                  </page>
                                              </t>
                                          </notebook>
                                      </template>
                                  </data>
                              </odoo>
                              
                              H 离线
                              H 离线
                              hui
                              发表于 最后由 编辑
                              #14

                              @hui 一个蹩脚的解决方案。
                              比如我现在假设有最多3个page。
                              1、在主model里面写3个o2m的字段,除了字段名其他都相同的。
                              2、在line的model里面加上个page的字段,区分每条记录是第几个sheet的数据。
                              3、在视图上用attrs属性用以判断是否显示。在notebook的page是也要加个判断条件的。

                              <field name="part_number" attrs="{'invisible': ['|', '|', ('is_cnaus_purchase', '=', True),('page', '&lt;', 1), ('page', '&gt;', 1)]}"/>
                              
                              <page string="Page 2" attrs="{'invisible': [('has_page_2', '=', False)]}">
                              

                              缺陷是:
                              如果有删除的权限的话,在编辑状态下,会显示出空行,最后还有一个删除按钮显示。在只读状态下的话,会明显看出有几个没有数据的空行。这些都去不掉的。
                              0_1531123051646_page11.png
                              0_1531123068753_page11.png

                              1 条回复 最后回复
                              0

                              你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                              厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                              有了你的建议,这篇帖子会更精彩哦 💗

                              注册 登录
                              回复
                              • 在新帖中回复
                              登录后回复
                              • 从旧到新
                              • 从新到旧
                              • 最多赞同


                              • 登录

                              • 没有帐号? 注册

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