Sử dụng các biến XML với các kích thước bộ lọc
Báo cáo động không phụ thuộc vào một nguồn dữ liệu cụ thể. Thay vào đó, các biến và tham số báo cáo được sử dụng làm chỗ dành sẵn cho kết nối dữ liệu yêu cầu và hình khối cũng như cho các kích thước.
Trình thiết kế báo cáo động không thể biết cơ sở dữ liệu hoặc cấu trúc dữ liệu nào mà báo cáo sẽ được sử dụng và không biết, ví dụ: số lượng thứ nguyên hoặc thứ nguyên nào sẽ được sử dụng làm kích thước bộ lọc. Nếu báo cáo được sử dụng trong bảng điều khiển và các thứ nguyên bộ lọc được sử dụng cho giao tiếp tiện ích, thì các giá trị được chọn từ mỗi thứ nguyên bộ lọc phải được lưu trữ. Nhưng vì các thứ nguyên là không xác định, điều này không thể được thực hiện bằng cách gán các biến và tham số riêng lẻ cho mỗi thứ nguyên. Giải pháp là lưu trữ các giá trị bộ lọc trong một biến XML có định dạng được xác định. Biến đó có thể được chỉ định cho bộ tham số báo cáo và được sử dụng trong giao tiếp tiện ích trên bảng điều khiển.
Giải pháp này liên quan đến việc sử dụng nhiều công thức SETPROPERTY trong nhiều hành động để điền vào một biến XML duy nhất.
Ví dụ: bạn có một báo cáo trong đó thứ nguyên Sản phẩm và Thời kỳ là thứ nguyên bộ lọc. Các lựa chọn của người dùng từ các thứ nguyên đó được chuyển đến các biến báo cáo được gọi là rv_product và rv_period. Các biến báo cáo đó sau đó được tham chiếu bởi công thức SETPROPERTY để điền vào biến báo cáo thứ ba, được gọi là rv_XMLFilters.
Đối với cấu trúc bộ lọc Sản phẩm, công thức SETPROPERTY này được sử dụng trong hành động Đặt tham số:
=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Product]","Unique",ReportVariables.rv_product.text)
.
Đối với kích thước của Kỳ, công thức này được sử dụng:
=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Period]","Unique",ReportVariables.rv_period.text)
Khi người dùng chọn từ các bộ lọc Sản phẩm và Thời kỳ, biến XMLFilters được điền với các giá trị từ rv_product và rv_period. Ví dụ:
<Table><Row
name="[Period]"><Property name="unique" value="[Period].[All Years].[2012]"
/></Row><Row name="[Product]"><Property name="unique"
value="[PRODUCT].[All Tires].[Special Offers]"
/></Row></Table>
Bằng cách chỉ định biến XML cho bộ tham số báo cáo, các giá trị được giữ trong biến có thể được sử dụng cho giao tiếp tiện ích nếu báo cáo được hiển thị trong bảng điều khiển.