Sửa report trong Odoo

  • 6K lượt xem
  • Bài viết cuối 21 Tháng Mười 2019
new_odoo đã gửi 23 Tháng Giêng 2019

Gửi các bro,

Em muốn sửa các form mẫu report trong Odoo 12 thì làm thế nào ạ, ví dụ như sửa form hóa đơn

gacon đã gửi 23 Tháng Giêng 2019

Bro bật chế độ debug lên (thêm ?debug vào url), sau đó vào phần Technical Settings, sẽ thấy mục report nhé, vào đó mà sửa form (dạng html hoặc xml)

Nhưng sửa trực tiếp chỉ sửa đơn giản được thôi, còn phức tạp phải dùng Aero Report

new_odoo đã gửi 28 Tháng Ba 2019

Cài Aero Report có dễ không các bác ơi, em cài trên Ubuntu 16.04 thấy trục trặc quá !

gacon đã gửi 28 Tháng Ba 2019

Cụ thể là bác bị làm sao ? @new_odoo

foxes_lover đã gửi 29 Tháng Ba 2019

 

Các báo cáo mặc định trong Odoo được viết theo kiểu QWeb, sử dụng XML để gói mã HTML bên trong. Khi cài đặt module thì các báo cáo này được đọc từ file XML vào lưu trong db của Odoo.

Để sửa các báo cáo Qweb thì bật chế độ debug của Odoo, vào phần Technical settings --> Report --> tìm đúng tên report và sửa mã XML sau đó save lại.

Aeroo Reports là report engine có thể chạy được trên Odoo, giúp cho việc thiết kế và tạo, in báo cáo đơn giản hơn rất nhiều so với Qweb. Về mặt quy cách làm báo cáo thì các báo cáo Aeroo Reports không liên quan gì với Qweb, nếu báo cáo của bác làm trên Aeroo Reports thì bác phải sửa trong file template của báo cáo. Chi tiết các bác tìm hiểu thêm về Aeroo Reports nhé.

new_odoo đã gửi 08 Tháng Mười 2019

Bro nào hướng dẫn ngắn gọn cho em cách tạo 1 aeroo_report với, em search và đọc nhiều trang rồi nhưng vẫn thấy mông lung quá !

gacon đã gửi 21 Tháng Mười 2019

@new_odoo: mình chia sẻ cách mình hay làm nhé

Bước 1: cài đặt các module cần cho aero_report (tự search nhé!)

Bước 2: Coding phần chuẩn bị data

- Khai báo 1 model với cấu trúc gồm toàn bộ data cần để xuất report

(mục tiêu tạo model là để Odoo tự tạo bảng tạm với cấu trúc mình cần)

Model này nên tạo là 1 TransientModel

- Viết 01 function đổ data ra bảng tạm, tên bảng tạm chính là tên model vừa khai báo ở trên

- Viết 01 function để select data từ bảng tạm, hãy dùng order by, group by, where... theo nhu cầu

Bước 3: Tạo 1 record bằng định dạng xml để khai báo report:

<record id="report1" model="ir.actions.report.xml">
    <field name="name">report 1</field>
    <field name="type">ir.actions.report.xml</field>
<field name="model">model1</field>
<field name="report_name">report1</field>
<field name="report_type">aeroo</field>
<field name="in_format">oo-ods</field>
<field name="out_format" model="report.mimetypes" search="[('code','=','oo-xls'), ('compatible_types','=','oo-ods')]" />>oo-ods</field>
<field name="parser_state">loc</field>
<field name="tml_source">file</field>
<field name="attachment_use" eval="0" />
</record>

<report
auto="False"
menu="False"
id="report1"
model="model1"
name="report 1"
string="Bao cao so 1"
rml="report1.ods" />


 Trong đó report1 là tên báo cáo, model1 là tên model, report1.ods là file thiết kế báo cáo, bro có thể thay bằng tên tùy ý

Bước 4: Viết hàm gọi report, hàm này có thể dùng để gọi từ menu hoặc button:

def print_report(self):
self.update_data()
return {'type': 'ir.actions.report.xml','report_name', 'report1'}

update_data là function để đẩy data vào bảng tạm, cái này bro tự viết theo nhu cầu

Bước 5: Mở file report1.ods ra và soạn báo cáo. Lưu ý nếu dùng LibreOffice để soạn, thì những chỗ cần insert field bro chọn insert hyperlink. Về file ods nếu viết cũng rất dài, bro tự tìm hiểu thêm nhé !

 

 

 

 

 

 

Bạn muốn gửi trả lời ? Hãy đăng nhập trước. Nếu chưa có tài khoản vào diễn đàn, hãy đăng ký
 

Chủ đề cùng danh mục