2010-06-17 36 views
6

Làm cách nào để đặt số hàng được hiển thị trên mỗi trang trong báo cáo bằng iReports. Ví dụ: nếu tôi có 100 bản ghi, tôi không hiển thị 10 trang trên mỗi trang và sau đó ngắt. Hành vi mặc định là nhồi nhét tất cả các bản ghi có thể có trong trang.Cách kiểm soát số hàng trong JasperReports

Trả lời

11

Ok! Tìm thấy một cách để thực hiện điều này!

  1. Các hàng thường được in trong băng tần Details.
  2. Ở cuối băng chi tiết, nơi bạn cần ngắt trang, hãy thêm một lần ngắt trang.
  3. Trong trang Thuộc tính của Break, hãy chỉnh sửa bản inKhi Biểu thức từ ngăn thuộc tính.
  4. Khái niệm sẽ

new java.lang.Boolean((int)($V{REPORT_COUNT}.intValue())%10==0)

nơi 10 là số lượng hồ sơ trên một trang.

Đây là cách thực hiện trong iReports. Tương đương jrxml cho những người chỉnh sửa trực tiếp tệp như sau.

<break> 
    <reportElement x="0" y="23" width="100" height="1"> 
     <printWhenExpression><![CDATA[new java.lang.Boolean((int)($V{REPORT_COUNT}.intValue())%10==0)]]></printWhenExpression> 
    </reportElement> 
</break> 

Đặt thẻ này ngay sau thẻ <band> dưới thẻ <details>.

+0

Giải pháp này hoạt động tốt nếu trang có nhiều hơn 10 hàng (như trong mẫu từ câu trả lời). Trong trường hợp nếu số hàng ít hơn số đã chỉ định (chiều cao của textField có thể tăng) thì thiết kế sẽ bị hỏng. Một vấn đề khác - tình huống khi chúng tôi có một báo cáo với số trang thậm chí 10, ví dụ 40. Trang trống sẽ được thêm vào cuối báo cáo. –

+0

@AlexK Tôi không có quyền truy cập vào Jasper vào lúc này, vì vậy không thể xác nhận, nhưng khi các bản ghi nhỏ hơn 10, ngắt trang đơn giản là không được thêm vào. Vì vậy, đối với các bản ghi dưới 10, sẽ không có ngắt trang và mọi thứ được in trong trang đầu tiên. Phần tiếp theo về việc thêm một trang phụ có thể đúng, không thể nhớ được cách giải quyết nào tôi đã sử dụng. –

1

Tùy thuộc vào chiều cao trang bạn đã đặt.

+0

Chiều cao trang không phải là cách phù hợp để comtrol, nếu kích thước văn bản thay đổi, số lượng sẽ tăng lên. Không có cách nào khác để xác định số lượng? –

+0

Sau đó, bạn có thể làm điều đó bằng cách sử dụng Biến. Bạn có thể tăng thêm biến cho đến khi giới hạn mong muốn của bạn đạt được. Sau đó bạn phải bắt đầu ở một trang khác. Tôi không biết nếu có một cách khác để làm điều này. –

+0

Tìm cách, xem câu trả lời của tôi cho bài đăng. –

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