zoukankan      html  css  js  c++  java
  • Odoo仪表盘详解

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826324.html

    一:仪表盘与看板的区别

        kanban:kanban是一种视图类型,卡片式视图。可以为某模型定义kanban视图,以卡片式进行展示、操作。

                     也可以自定义一个模型专门用来作为一个模块的看板视图,称之为“工作台”。如果模块中有多个模型,需要不同卡片来展示、操作,可以在自定义的kanban模型中定义一个类型字段,通过不同类型,来展示不同的卡片内容。

        仪表盘:仪表盘是odoo内置的一个模型,名为 board.board  。仪表盘模型类似于驾驶舱一样,可以在界面上加载、显示不同模型的特定视图,以某种排版方式在界面上显示。达到“全局监控、全局操作”的效果。

                    例如:

       

     

    二:仪表盘的使用

        仪表盘的模型不需要我们自己定义,我们只需要自己组装视图文件,决定我们想要的仪表盘视图要展示哪些模型的哪些视图、怎样排版展示即可。

        1:新建视图文件

            在模块的views目录下新建。

        2:编写文件内容,组装仪表盘界面

    <?xml version="1.0"?>
    <odoo>
        <data>
           <!--1:通过action打开一个模型的图形视图-->
            <record model="ir.actions.act_window" id="act_session_graph">
                <field name="name"></field>
                <field name="res_model">引用的模型</field>
                <field name="view_type">form</field>
                <field name="view_mode">graph</field>
                <field name="view_id"
                       ref="模型.被引用的视图元素的外部id"/>
            </record>
    
            <!--2:通过action打开日历视图-->
            <record model="ir.actions.act_window" id="act_session_calendar">
                <field name="name"></field>
                <field name="res_model">模型</field>
                <field name="view_type">form</field>
                <field name="view_mode">calendar</field>
                <field name="view_id" ref="模型.视图外部id"/>
            </record>
    
            <!--3:通过action打开模型列表/表单视图-->
            <record model="ir.actions.act_window" id="act_course_list">
                <field name="name">Courses</field>
                <field name="res_model">openacademy.course</field>
                <field name="view_type">form</field>
                <field name="view_mode">tree,form</field>
            </record>
    
           <!--上述action们都是仪表盘各项内容的来源-->
    
            <!--定义仪表板视图-->
            <record model="ir.ui.view" id="board_session_form">
                <field name="name">仪表板</field>
                <field name="model">board.board</field>
                <field name="type">form</field>
                <field name="arch" type="xml">
                    <form string="仪表盘">
                        <board style="2-1">//排版样式,有好几种样式:1,1-1,2-1和1-1-1,可以在界面上里面点击切换样式
                            <column>//仪表盘单元
                                <action
                                    string="表盘1"
                                    name="%(上面引入的视图id)d"
                                    height=""
                                    width=""/>
                                <action
                                    string="表盘2"
                                    name="%(上面引入的视图id)d"/>
                            </column>
                            <column>//第二列
                                <action
                                    string="表盘3"
                                    name="%(上面引入的视图id)d"/>
                                    ......
                            </column>
                        </board>
                    </form>
                </field>
            </record>
    
    
           <!--定义动作打开仪表板视图-->
            <record model="ir.actions.act_window" id="open_board">
              <field name="name">Dashboard</field>
              <field name="res_model">board.board</field>
              <field name="view_type">form</field>
              <field name="view_mode">form</field>
              <field name="usage">menu</field>
              <field name="view_id" ref="board_session_form"/>
            </record>
    
            <!--定义菜单项,打开仪表盘的action-->
            <menuitem
                name="仪表盘" parent=""
                action="open_board"
                sequence="1"
                id=""
                icon="terp-graph"/>
        </data>
    </odoo>

        3:在manifest中配置文件,使其被加载

    'depends': ['base', 'board'],
    
    'data': [
            ......
            'views/session_board.xml',
        ],

    三:怎么选择

        1:工作台的实现方式选择

        1)仪表盘

            缺点:自由度低。只能通过action调用各个模型的各种视图,单纯地在同一个页面陈列展示。不能作一些统计、加工处理后的效果展示。

            优点:能调用odoo原生的内容,例如graph、透视图、tree视图等。

        2)用kanban

            缺点:卡片内容要自己写,无法调用odoo原生的视图;卡片上要呈现的内容都需要自己定义、赋值。

            优点:自由度高。可以以某个模型为管理单元,制定看板视图,形成管理工作台。也可以自定义一个看板模型,根据不同类型,使卡片展现不同内容,以达到 “模块工作台”的效果。

                     还可以在卡片上,通过label展示一些统计信息;通过button快速跳转;通过柱形图、折线图展示某关键数据的历史变化。

        结论:工作台,使用kanban更好。

       

        2:驾驶舱的实现方式选择

        1)仪表盘

            缺点:自由度低。只能通过action调用各个模型的各种视图,单纯地在同一个页面陈列展示。不能作一些统计、加工处理后的效果展示。

            优点:能调用odoo原生的内容,特别是透视图和图表,可以实现  多维分析驾驶舱

        2)自由前端

            缺点:内容要自己定义,数据来源要自己书写、提供。

            优点:自由度高,通过前端技术,可以集成各种优秀、炫酷的前端控件,达到最优的展示效果。可以实现“管理驾驶舱”。

        结论:报表模块,可以使用仪表盘实现多维分析驾驶舱,把多维分析在一个界面显示。

                 项目驾驶舱模块,使用前端技术,为领导层提供一些加工、处理过的统计结果数据,进行可视化呈现。

  • 相关阅读:
    最全的常用正则表达式大全
    服务器调用JS
    ASP-----分页功能的实现
    流操作text文件------读取、保存文档
    linq to sql 增删改查
    数据库的高级应用
    SQL---------表的约束
    面向对象--继承练习
    Winform---文件夹操作
    面向对象--里氏转换练习
  • 原文地址:https://www.cnblogs.com/ygj0930/p/10826324.html
Copyright © 2011-2022 走看看