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

OpenERP 7: Creating report using SQL query

Ảnh đại diện
david

Xin chào các ACE,
Chúc 1 ngày làm việc thành công.
Hiện tại mình đang tạo report bằng việc sử dụng SQL query (theo link). Tuy nhiên, mình bị một lỗi như sau:
Ví dụ mình mình chạy query đơn giản cho 1 model A
model A
f1: char
f2: float
model này giả sử có 50 record
Câu query như sau:
select a.id as id, a.f1 as f1, a.f2 as f2
from a
=> khi đó tree view của mình hiện đủ 50 record.

tuy nhiên khi mình join với model b
model A
f1: char
f2: float
f1a: one2many model B
Model B
f3: char
f4: float
f5: many2one model A
Câu query như sau:
select a.id as id, a.f1 as f11, b.f3 as f33
from a join b on a.id=b.many2one
=>khi đó tree view của mình chỉ hiện 20 trong tổng số 30 record (30 record này mình có được khi chạy cùng câu query này trong PostgresSQL Maestro).
Mình nghiên cứu mãi mà chưa ra, ức chế thật!!!!
ACE vui lòng giúp với

http://sajjadhossain.com/2013/06/30/openerp-7-creating-report-using-sql-query/comment-page-1/#comment-11108

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

@david,

Theo mình nghĩ vấn đề này nằm ở tính toàn vẹn dữ liệu, không liên quan đến OpenERP, Report,… Bạn xem lại dữ liệu ở 2 bảng A và B xem. Trong trường hợp này có thể có những dữ liệu ở bảng A nhưng ko tham chiếu sang bảng B hoặc ngược lại. Bạn có thể thử bằng test bằng cách thay join = left/right join.

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

Mình thử dùng PostgreSQL Maestro execute quer. Kết quả display là 30, còn nếu thực thi trong Openerp thì chỉ có 20 thôi.

Ảnh đại diện
ViindooBot
-

Bạn thử bug mảng trả về trong code python xem bao nhiêu record?

Ảnh đại diện
ViindooBot
-

Mình cũng đã nghĩ đến trường hợp dùng
raise osv.except_osv(('Error'), ( ) ) để show message tuy nhiên chưa làm được.
Còn dùng bug mảng thì chưa biết cách dùng. Leo có ví dụ nào không share giúp cho mình với.
Cám ơn rất nhiều

Ảnh đại diện
ViindooBot
-

Việc bug thì phụ thuộc vào môi trường phát triển & IDE? Bạn đang dùng IDE nào và môi trường dev là gì? Win or Linux?

Ảnh đại diện
ViindooBot
-

mình đang customize nên tạm thời dùng IDE trên môi trường windows:Eclipse SDK Version: 4.2.2

Ảnh đại diện
ViindooBot
-

OK, vậy bạn chạy chế độ debug và bug như bình thường thôi

Ảnh đại diện
ViindooBot
-

Chào Leo,
Eclipse của mình bị lỗi nên không thể debug được (haiz mình cũng không biết tại sao nữa).
Mình dùng PostgreSQL Maestro vào trực tiếp view mình đã tạo thì mình thấy trong view có 30 record.
trên tree view của openerp mình click chọn chế độ xem unlimited thì nó ra là 21 record

Ảnh đại diện
ViindooBot
-

Trường hợp này đúng là khó xử thật.
1. Bạn kiểm tra lại xem load đúng view chưa?
2. Xem có domain filter nào tác động đến view ko?
3. Chỉ còn cách bug trực tiếp mảng được trả về khi chạy câu truy vấn.

Ảnh đại diện
ViindooBot
-

Haizzzzzzzzzzzzz, ức chế thật.
Không có domain filter nào hết.
Load đúng view mà

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.