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)自由前端

        缺點:內容要自己定義,數據來源要自己書寫、提供。

        優點:自由度高,通過前端技術,可以集成各種優秀、炫酷的前端控件,達到最優的展示效果。可以實現“管理駕駛艙”。

 

    結論:報表模塊,可以使用儀表盤實現多維分析駕駛艙,把多維分析在一個界面顯示。

             項目駕駛艙模塊,使用前端技術,為領導層提供一些加工、處理過的統計結果數據,進行可視化呈現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM