Hỏi Đáp

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

0

Tạo Custom Report trong OpenERP

Ảnh đại diện
vũ đình dũng

Em chào các anh!!!
Hiện tại em đang tụ tìm hiểu về report trong OpenrERP và có nhiều điều chưa hiểu rõ như cách hoạt động của nó, tạo đối tượng cho nó…nên em rất mong nhận được sự hướng dẫn của các anh. Em có làm một cái report nhỏ nhưng có vẻ như em đang hiểu sai vấn đề nên nó không hoạt động theo ý muốn, vì thể em rất mong được các anh chia sẻ đôi chút về vấn đề này. Em cảm ơn các anh.:)

Ảnh đại diện
Huỷ
14 Trả lời
1
Ảnh đại diện
Leo Tran
Best Answer

Đến lúc đấy mà có time a viết help về report tử tế cho chú :D

Ảnh đại diện
Huỷ
1
Ảnh đại diện
Vũ Trọng Đạt
Best Answer
Em chào các anh!!!
Hiện tại em đang tụ tìm hiểu về report trong OpenrERP và có nhiều điều chưa hiểu rõ như cách hoạt động của nó, tạo đối tượng cho nó…nên em rất mong nhận được sự hướng dẫn của các anh. Em có làm một cái report nhỏ nhưng có vẻ như em đang hiểu sai vấn đề nên nó không hoạt động theo ý muốn, vì thể em rất mong được các anh chia sẻ đôi chút về vấn đề này. Em cảm ơn các anh.:)

Theo mình, nếu bạn thực sự chưa hiểu rõ cách hoạt động của OpenERP thì bạn nên tìm hiểu cách tổ chức và viết một module trước, rồi hãy bắt tay vào thiết kế report.

Thân ái!
Ảnh đại diện
Huỷ
0
Ảnh đại diện
ngotuyetmai
Best Answer

Chào mọi người, mình là một người mới tìm hiểu về Report cho OpenERP bản 7, mong mọi người có thể giúp đỡ mình vấn đề này:
Mình đã làm theo hướng dẫn như trên, cụ thể như sau
1. Vào OpenOffice tạo một report là Account List để liệt kê danh sách các Tài khoản
2. Convert report đó ra file .rml
3. tạo folder exam và các file như ở trên với cấu trúc file như trên.
4. Vào admin, vào Setting –> Update Modules List –> Ấn Update
5. Vào Setting –> Installed Modules và search từ exam để show ra module đó, và click install, nhưng nó báo lỗi : Error occurred while validating the field(s) arch: Invalid XML for View Architecture!
5. Restart lại service OpenERP và vào admin –> Accounting –> Configuration –> Account, chọn 1 hàng và ấn nút print thì kết quả vẫn là report cũ không thay đổi theo nội dung file .rml

Vấn đề của mình là làm sao để report sau khi tạo ra có thể thay đổi theo file .rml đã convert được dù đó là report tạo ra từ module hay tạo ra từ OpenOffice.

Rất mong nhận được sự giúp đỡ của mọi người.
Dưới đây là file đính kèm module exam của mình và hình chụp của report tạo ra từ OpenOffice trong admin của OpenERP.

Tạo Custom Report trong OpenERP

Ảnh đại diện
Huỷ
0
Ảnh đại diện
Leo Tran
Best Answer

@Dũng,

Em nên biết report là một phần của module, do đó trước tiên em cần biết cấu trúc của một module. Cái này nếu em chưa biết, em có thể tạo một topic khác, bọn anh sẽ trao đổi cụ thể với em về cấu trúc và cách viết một module trong OpenERP. Trong trường hợp này, anh giả thiết là em đã biết cấu trúc của một module và module đó có tên là exam.

Có 2 cách để viết custom report trong OpenERP: RML report và webkit report. Anh sẽ hướng dẫn em sử dụng RML cho dễ.
Để tạo ra file RML trước tiên em phải cài open-office. Sau khi đã cài xong open-office em thực hiện theo các bước sau:

Bước 1: Cài plugin openerp_report_designer.zip bằng cách vào chính trong hệ thống OpenERP của em, search module base report designer, kích vào install, nó sẽ hiện ra một form, trên form đó có hướng dẫn chi tiết các cài plugin này vào open-office

Bước 2: Mở open-office, tạo mới report, add một cái loop (chọn database), add một loop vào một cái repeat, sau đó thêm trướng cần hiển thị trong báo cáo. Tùy chỉnh nó như chỉnh file word thông thường. Sau đó lưu lại dưới dạng file .sxw hoặc send to the server.

Bước 3: Convert .sxw thành rml bằng cách vào run gõ cmd, cd tới base-report-designer/openerp_sxw2rml. Sau đó chạy đoạn code sau

python openerp_sxw2rml.py 
 ../../exam/report/.sxw > ../../exam/report/.rml




Bước 4: Trong thư mực report của module exam thêm 2 file examp.py và __init__.py, chèn đoạn code sau vào file examp.py:

import time 
     from report import report_sxw 
     class exam(report_sxw.rml_parse): 
          def __init__(self, cr, uid, name, context): 
               super(exam, self).__init__(cr, uid, name, context) 
               self.localcontext.update({ 
               'time': time, 
               }) 
report_sxw.report_sxw('report.exam.student', 'exam.student', 
    'addons/exam/report/exam.rml', parser=exam, header=True) 



Chèn đoạn code sau vào file __init__.py:

import exam




Bước 5: Trong thư mục exam, thêm file exam_report.xml với nội dung như sau:

xem đính kèm


Sau đó vào file __openerp__.py, trong đoạn code update xml thêm đoạn code sau:

'exam_report.xml'


File __init__.py (nằm trong thư mục exam, khác với file __init__.py trong thư mục report) thêm đoạn code sau

import report 

Tạo Custom Report trong OpenERP

Ảnh đại diện
Huỷ
0
Ảnh đại diện
Leo Tran
Best Answer

@ngotuyetmai: bạn đang gặp 2 vấn đề như sau:

1. Invalid XML for View Architecture!: lỗi này là do file exam_report.xml của bạn sai định dạng, cụ thể là thẻ record của bạn không có thẻ đóng.
2. Về vấn đề report: Bạn nên xem tìm hiểu kỹ cách tạo report trong openerp. Ở đây bạn phải hiểu, để sửa một report đã có sẵn, cách làm dễ dàng nhất là dùng OpenOffice mở file report đó ra và edit, sau đó send to server. Trong trường bạn "chọn 1 hàng và ấn nút print" thì đương nhiên nó vẫn gọi đến report cũ. Bạn mới chỉ định nghĩa một report mới, chứ chưa chi ra cho OpenERP biết là kích vào nút nào (menu, wizard nào) để gọi đến report mới đó.

Hy vọng giúp được bạn!

5 Bình luận
Ảnh đại diện
Huỷ
Ảnh đại diện
ViindooBot
-

Nếu như vậy tức là mình phải hoàn toàn viết mới một module mà có chứa chức năng report. Như vậy thì file .rml tạo ra từ OpenOffice chỉ có ý nghĩa tạo ra một report mẫu trước để mình sửa hàng cột, vị trí dữ liệu cho module mới phải không ạ ?

Ảnh đại diện
ViindooBot
-

Trong trường hợp bạn muốn sửa, cách tốt nhất bạn nên mở OpenOffice, sau đó chọn chức năng modify, rồi chọn đến report cần sửa. Sau khi chỉnh sửa, bạn send to server, như vậy là xong.

Ảnh đại diện
ViindooBot
-

Vâng, mình cảm ơn bạn. Thế nếu mình muốn sửa về style cho report, ví dụ như cho gạch dưới tên trường, hoặc cho chữ bôi đậm thì mình có thể làm như thế nào trên OpenOffice ạ.
Mình đã làm report trên Office và thấy chỉ có thuộc tính font chữ. bảng, border của table ( chỉ có 1 border bao lấy bảng ) là được giữ lại trên file PDF
Còn các thuộc tính khác của chữ, bảng đều không nhận được.
Một lần nữa cảm ơn bạn :)

Ảnh đại diện
ViindooBot
-

Trong trường hợp đó bạn soạn thảo như bình thường. Bôi đen trường muốn tưong tác, sau đó chọn B, U, I, color,... Nếu là những tùy chỉnh cao cấp hơn, bạn cần hiểu về ngôn ngữ rml, hoặc dùng công nghệ thiết kế report khác (Webkit, Pentaho,...)

Ảnh đại diện
ViindooBot
-

Thanks bạn nhiều, nhưng mình tạo những soạn thảo thông thường đó trên OpenOffice 4 cũng như vậy và save vào, nhưng khi in ra báo cáo trong OpenERP thì nó toàn bị mất hết các thuộc tính đó.

Mình cũng có xem các báo cáo có sẵn, họ có style layout riêng cho chúng trong file .rml và trên file edit OpenOffice nó chỉ là các section bao quanh và các thuộc tính trên, mình không biết có lỗi ở bước nào không, mong bạn chỉ giúp mình :)

0
Ảnh đại diện
vũ đình dũng
Best Answer

:)) cám ơn đại ca trước. Mà công ty anh triển khai hệ thống thuận lơi không anh. Chỉ cần hộ không sợ mây thì em nghĩ bên anh triển khai cái này là quá tuyệt vời luôn.

Ảnh đại diện
Huỷ
0
Ảnh đại diện
vũ đình dũng
Best Answer

Vâng, em viết được rồi,:) mất công gì anh. Sau này kiểu gì em chả phải hỏi về vấn đề này, anh viết help bây giờ để sau này đỡ phải viết :). Em cám ơn anh.

Ảnh đại diện
Huỷ
0
Ảnh đại diện
Leo Tran
Best Answer

À, ra vậy. Tại em không nói rõ, làm anh mất công ngồi viết help tạo custom report :(. Nếu vậy, thực chất nó là một dạng view. Em có thể tham khảo các view report mặc định của hệ thống, ví dụ như: Accounting, Project, Warehouse…

Ảnh đại diện
Huỷ
0
Ảnh đại diện
vũ đình dũng
Best Answer

Em chào mọi người. Ý em hình như khác với các anh thì phải, em chưa viết phần print ra report mà em đang viết chức năng report thôi ạ, như trong phần purchase đó, nó tạo bảng rồi select rồi group để có thể thể hiện lên trên form, rồi thể hiện dạng biểu đồ thôi chứ em chưa xuất ra file đâu ạ. Phần đấy em chưa làm được đâu :)

Ảnh đại diện
Huỷ
0
Ảnh đại diện
Leo Tran
Best Answer

@Dũng,

Đạt nói chuẩn đấy, em cứ bắt tay từ module rồi hãy đến report. Có gì khó khăn cứ lên đây, anh và mọi người sẽ cố hết sức giúp đỡ :">

Ảnh đại diện
Huỷ
0
Ảnh đại diện
Leo Tran
Best Answer

Thảo nào, time gần đây không thấy chú đâu :D

Ảnh đại diện
Huỷ
0
Ảnh đại diện
vũ đình dũng
Best Answer

Hic, đến là đau khổ, cái lap của em chết màn hình cả tuần, vừa mới sửa được xong :((, giờ em mới được vào đọc tiếp bài của anh

Ảnh đại diện
Huỷ
0
Ảnh đại diện
vũ đình dũng
Best Answer

Em viết trên window ạ

Ảnh đại diện
Huỷ
0
Ảnh đại diện
Leo Tran
Best Answer

@Dũng,

Trước tiên, em có thể cho anh biết em định viết report cho OpenERP trên nền tảng nào? Window hay Linux?

Ảnh đại diện
Huỷ

Trả lời của bạn

Vui lòng đảm bảo câu trả lời của bạn có liên quan và giải đáp đúng nội dung câu hỏi. Nếu muốn bình luận về câu hỏi hoặc câu trả lời, hãy sử dụng công cụ Bình luận. Lưu ý, bạn có thể thay đổi nội dung trả lời thay vì trả lời lại 02 lần cho cùng một câu hỏi. Đồng thời bạn có thể nhấn nút để bầu chọn câu hỏi / câu trả lời tốt nhất.