Tham số hiển thị (Đa giá trị) trong Báo cáo


80

Bất cứ ai có thể cho tôi biết cách hiển thị tất cả giá trị đã chọn của tham số đa giá trị của tôi trong báo cáo SSRS. Khi đưa ra parameter.valuetùy chọn, nó sẽ báo lỗi.


1
Đây là cách để thực hiện việc này bằng cách sử dụng hàm JOIN, như một phần của blog lớn hơn về các tham số đa giá trị: Wisdomowl.co.uk/blog/s187/multivalue-report-builder.htm .
Andy Brown

Câu trả lời:


154

Bạn có thể sử dụng chức năng "Tham gia" để tạo một chuỗi đơn từ mảng nhãn, như sau:

=Join(Parameters!Product.Label, ",")

Nếu anh ta thêm expr tham gia vào tiêu đề, nó có làm cho kết quả tăng lên trên phần nội dung của báo cáo không?
mirezus

Cảm ơn bạn đã đưa ra một câu trả lời tuyệt vời trước khi tôi phải vò đầu bứt tóc khi xem googling!
Pulsehead

2
hoặc=Join(Parameters!Product.Value, ",")
Doug_Ivison

Điều gì sẽ xảy ra nếu bạn có ngắt trang trên mỗi sản phẩm? Có thể hiển thị một sản phẩm trên mỗi trang không?
Pepys

12

= Tham gia (Tham số! Product.Label, vbcrfl) cho dòng mới


1
@nadiObi: Thay vào đó, nó phải là vbCrLf .
stomy

6

Tôi không biết về chức năng tham gia - Tốt! Tôi đã viết một hàm mà tôi đã đặt trong phần mã (báo cáo thuộc tính-> tab mã:

Public Function ShowParmValues(ByVal parm as Parameter) as string
   Dim s as String 

      For i as integer = 0 to parm.Count-1
         s &= CStr(parm.value(i)) & IIF( i < parm.Count-1, ", ","")
      Next
  Return s
End Function  

+1 Điều này hoạt động trong tiêu đề báo cáo trong đó giải pháp "Tham gia" yêu cầu một bảng (không thể đi vào tiêu đề báo cáo).
Jeff

0

Hy vọng rằng ai đó khác thấy điều này hữu ích:

Sử dụng Tham số là cách tốt nhất để sử dụng tham số nhiều giá trị. Nhưng nếu bạn muốn có một 'Chọn Tất cả' hiệu quả? Nếu có 100s + thì truy vấn sẽ rất kém hiệu quả.

Để giải quyết vấn đề này thay vì sử dụng Truy vấn SQL như hiện tại, hãy thay đổi nó thành sử dụng biểu thức (nhấp vào nút Fx trên cùng bên phải) sau đó tạo truy vấn của bạn giống như sau (cần có dấu giọng nói):

= "Select * from tProducts Where 1 = 1 " 
IIF(Parameters!ProductID.Value(0)=-1,Nothing," And ProductID In (" & Join(Parameters!ProductID.Value,"','") & ")")

Trong Tham số của bạn, hãy làm như sau:

    SELECT -1 As ProductID, 'All' as ProductName Union All
    Select  
    tProducts.ProductID,tProducts.ProductName
    FROM
    tProducts

Bằng cách xây dựng truy vấn dưới dạng biểu thức có nghĩa là bạn có thể làm cho Câu lệnh SQL hiệu quả hơn nhưng cũng xử lý được khó khăn mà SQL Server gặp phải khi xử lý các giá trị trong câu lệnh 'Trong'.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.