Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào để Hiển thị Số Trang trong Nội dung Báo cáo của SSRS 2008 R2?

Trước tiên, bạn cần sử dụng các biến báo cáo: nhấp chuột phải vào không gian trống của báo cáo -> Biến -> Tạo một biến như Số trang (đặt giá trị mặc định thành 0)

Sau đó, trong đầu trang hoặc chân trang của bạn -> tạo một hộp văn bản và đặt biểu thức ->

=Variables!PageCount.SetValue(Variables!PageCount.Value+1)

Nó sẽ tự động tăng cho mỗi trang. ( QUAN TRỌNG:KHÔNG ẩn nó khỏi đầu trang hoặc chân trang, SetValue KHÔNG hoạt động nếu bạn ẩn hộp, vì vậy hãy thay đổi phông chữ thành 1 hoặc văn bản thành màu trắng, làm bất cứ điều gì, chỉ cần KHÔNG ẩn nó (nó sẽ in 'True' khi cài đặt đã diễn ra))

Sau đó, bạn có thể sử dụng:

=Variables!PageCount.Value

tại bất kỳ phần nào của nội dung báo cáo của bạn để truy cập số trang.

QUAN TRỌNG:Xin LƯU Ý rằng tôi đã cố gắng sử dụng Globals! PageNumber để đặt biến nhưng cuối cùng nó KHÔNG thể truy cập được từ nội dung báo cáo. Vì vậy, nó phải là thứ có thể truy cập được từ Header / Footer HOẶC Body.

Trong trường hợp của tôi, tôi phải đặt lại Số trang cho mỗi phiên bản của Nhóm của mình. Vì vậy, tôi chỉ đặt trình kích hoạt ở cuối nhóm. (Ví dụ:tôi kiểm tra xem tôi có trả về Tổng giá trị hay không, vì tôi biết cho mỗi đầu của nhóm của tôi, tôi sẽ có một màn hình Tổng số.

Vì trong hàm IIF cả phần Đúng và Sai sẽ được xử lý, vì vậy nếu bạn đặt bộ định tuyến trong IIF chẳng hạn như bên dưới:

=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),Variables!PageCount.SetValue(0))

 ) 

bạn sẽ luôn có giá trị 0, bởi vì báo cáo sẽ Kiểm tra Phần Đúng rồi đến Phần Sai, cả hai bộ thiết lập sẽ được thực thi (giá trị sẽ được đặt hai lần)

vì vậy chúng tôi cần 2 hộp và một cái gì đó như: (Bạn phải ẩn hộp không cần thiết các điều kiện kiểm tra của mình)

=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),"")
)

Bạn cần ẩn hộp này khi NOT IsNothing(ReportItems!TotalBox.Value)

=IIF(NOT IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(0),"")
)

Một lần nữa, bạn cần ẩn hộp này khi IsNothing(ReportItems!TotalBox.Value)

Tất nhiên, bạn có thể sử dụng một số cách khác để xác định phần cuối của một phiên bản nhóm, chẳng hạn như:tạo một hộp văn bản CHỈ chứa một giá trị cố định ở cuối bảng nhóm của bạn. và ẩn nó đi. khi bạn kiểm tra trình kích hoạt, chỉ cần thực hiện theo cách tiếp cận tương tự như tôi làm.

Nó hoạt động tốt cho tất cả các phiên bản trên 2008 R2 (bao gồm).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm hiểu xem Ràng buộc KIỂM TRA là Cấp cột hay Cấp bảng trong SQL Server (Ví dụ T-SQL)

  2. GETUTCDATE () có trả về cùng một giá trị nếu được sử dụng hai lần trong cùng một câu lệnh không?

  3. Sử dụng lại trường bí danh trong câu lệnh SQL SELECT

  4. T-SQL không thể khôi phục

  5. Cách sử dụng BẤT KỲ / MỘT SỐ Toán tử logic nào trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 127