2010-03-08 31 views
11

Có cách nào để đặt giá trị mặc định cho trường trong báo cáo không? Tôi có rất nhiều trường String trong một báo cáo và muốn chúng hiển thị "0,00" khi chúng không có giá trị.JasperReports: giá trị mặc định thay vì 'null'

+0

nếu bạn không hài lòng với câu trả lời, vui lòng thêm chi tiết khác vào câu hỏi – medopal

+0

Tôi nghĩ rằng bạn cũng nên thay đổi giá trị văn bản thành giá trị số và mẫu đặt rồi đặt eventualy 0 không phải là "0,00" không phải là định dạng toàn cầu cho các số. –

Trả lời

17

Giả sử tên trường là "giá trị", trong "Dòng Biểu hiện Văn bản", viết: Câu trả lời

($F{value} != null) ? $F{value} : "0.00"

+5

Đảm bảo kiểm tra cài đặt ngôn ngữ kịch bản cho báo cáo, cho tôi trong iReport Designer 4.0.2 cú pháp này hoạt động trong Java nhưng không phải trong Groovy – benz001

0

Bạn đã thử đặt mẫu trong trường văn bản chưa?

Nếu bạn đang sử dụng iReport, điều này có thể được tìm thấy trong thuộc tính cho trường văn bản trong phần Text Field Properties.

Hãy thử điều gì đó dọc theo các dòng ###0.00 để thể hiện 1234.56, luôn hiển thị 0,00 ngay cả khi nó rỗng.

4

medopal là tốt, nhưng 2 bổ sung:

1) Bạn có thể làm cho cú pháp ngắn:

($F{field_name}) ? $F{field_name} : "0.00"

2) Hãy chắc chắn rằng bạn "khác" dữ liệu của lớp tương tự như v của trường alue, nếu không bạn sẽ nhận được lỗi khi nó cố gắng để ép buộc số thành chuỗi, vv vv Đây là một cái gì đó, khi tôi bắt đầu, tôi trộn lẫn lên.

+0

Khi tôi xóa '! = Null', tôi nhận được' Loại không khớp: không thể chuyển đổi từ Chuỗi để boolean'. –

+0

Rất có thể công nghệ đã thay đổi trong 7 năm kể từ khi tôi cung cấp câu trả lời này, tại thời điểm tôi thử nghiệm nó đã hoạt động trước khi đăng. Tôi không còn là người dùng hoạt động của JasperReports nữa, @JamieKitson Tôi hy vọng bạn sẽ tìm thấy một tài nguyên cập nhật giúp bạn. – semperos

4

Bạn cũng có thể chọn "Trống khi rỗng" trong thuộc tính của trường văn bản nếu bạn muốn. Các tùy chọn khác linh hoạt hơn nhưng thao tác này rất nhanh chóng và dễ dàng.

+0

Giải pháp đơn giản và thanh lịch hơn so với các giải pháp trước đó. – Dekel

+0

Vâng, nhưng nó chỉ hoạt động nếu bạn chỉ có một trường trong hộp văn bản. –

0

Đây là cách dễ nhất là sử dụng hàm Coalesce() or NVL() của cơ sở dữ liệu trong truy vấn nguồn dữ liệu của bạn để hạn chế dữ liệu rỗng trên báo cáo của bạn.

Nhưng tùy thuộc vào việc bạn có được phép thay đổi truy vấn nguồn dữ liệu hay không. Nếu không thì bạn có thể đi cho các giải pháp khác được cung cấp trong câu trả lời trước.

Các vấn đề liên quan