作為一名圖書管理員,我希望能生成各種統計報表,如借閱排行、讀者活躍度和館藏利用率,以便於決策和服務改進。
models/library_book.py
models/library_student.py
class LibraryBook(models.Model):
_name = 'library.book'
loan_count = fields.Integer(string='借閱次數', compute='_compute_loan_count', store=True)
def _compute_loan_count(self):
for book in self:
book.loan_count = self.env['library.book.loan'].search_count([
('book_id', '=', book.id),
('state', '=', 'returned')
])
class LibraryStudent(models.Model):
_name = 'library.student'
loan_count = fields.Integer(string='借閱次數', compute='_compute_loan_count', store=True)
def _compute_loan_count(self):
for student in self:
student.loan_count = self.env['library.book.loan'].search_count([
('student_id', '=', student.id),
('state', '=', 'returned')
])
views/library_book_views.xml.xml
views/library_student_views.xml
我們需要建立控制器來處理頁面的請求和表單的提交。
reports/library_reports.xml
<odoo>
<template id="report_library_book_loan">
<t t-call="web.external_layout">
<div class="page">
<h2>借閱排行報表</h2>
<table class="table table-sm">
<thead>
<tr>
<th>isbn</th>
<th>書名</th>
<th>借閱次數</th>
</tr>
</thead>
<tbody>
<t t-foreach="docs" t-as="book">
<tr>
<td><t t-esc="book.isbn"/></td>
<td><t t-esc="book.name"/></td>
<td><t t-esc="book.loan_count"/></td>
</tr>
</t>
</tbody>
</table>
</div>
</t>
</template>
<record id="action_report_library_book_loan" model="ir.actions.report">
<field name="name">借閱排行報表</field>
<field name="model">library.book</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">library_management.report_library_book_loan</field>
<field name="report_file">library_management.report_library_book_loan</field>
<field name="print_report_name">'借閱排行報表 - %s' % (object.name)</field>
<field name="binding_model_id" ref="model_library_book"/>
<field name="binding_type">report</field>
</record>
</odoo>
圖書統計
借閱排行
在這一章中,介紹了如何透過 Odoo 開發一個圖書管理系統的借閱統計報表功能,以下為關鍵步驟:
修改圖書及借閱記錄的模型:
models/library_book.py
和 models/library_student.py
中新增了 loan_count
欄位,並透過計算方法來統計每本書和每位讀者的借閱次數。建立圖片及分析表:
views/library_book_views.xml
和 views/library_student_views.xml
中設計了用來顯示統計數據的視圖。建立 QWeb 報表:
reports/library_reports.xml
中建立了借閱排行的 QWeb 報表模板。這個報表會顯示書籍的 ISBN、名稱及其借閱次數。測試及查看成果:
使用 Odoo 17 來開發圖表及分析報表具有以下幾個顯著的優勢與特點:
Odoo 17 提供強大的即時數據分析功能,讓管理者能夠即時查看各種數據。透過內建的圖表和報表功能,可快速開發類似,借閱排行、讀者活躍度、館藏利用率等資料,有助於做出快速且明智的決策。
利用計算字段,如 loan_count
,Odoo 17 可以自動更新借閱次數等數據,無需手動操作,減少了人工錯誤和繁瑣的操作步驟。此外,這些計算字段也可以用於生成即時的圖表和報表,確保數據的準確性。
Odoo 17 允許用戶創建自訂儀表板,管理者可以根據需求將不同的報表和分析圖表整合到同一介面中,方便快速查看所有重要數據。
Odoo 附帶一系列即時可用的分析模板和視覺化工具,這些模板可以根據不同的需求進行調整和擴展。可以快速利用這些預設的模板生成想要的分析報表,而無需從零開始設計。